refactor jdk compiler into utility