Подтвердить что ты не робот

Компиляция внешних .java файлов из Java

Я создаю инструмент, который будет писать .java файлы, а затем (надеюсь) скомпилировать эти файлы в .class файлы. Все в одном процессе пользователь выбирает каталог файлов, в котором записаны несколько файлов .java. Теперь я хочу, чтобы программа скомпилировала эти файлы Java.

4b9b3361

Ответ 1

JavaCompiler - ваш друг. Проверьте документацию здесь

И вот пример того, как вы могли бы использовать API компилятора

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList("YouFileToCompile.java"));
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null,
        null, compilationUnits);
boolean success = task.call();
fileManager.close();

Ответ 2

JavaCompiler будет null, если код запущен из JRE. Для этого нужен JDK, который включает tools.jar.