从Java中编译外部.java文件

时间:2012-06-04 22:18:19

标签: java file class compilation

我正在制作一个可以编写.java文件的工具,然后(希望)将这些文件编译成.class文件。在一个进程中,用户选择一个文件目录,其中写入多个.java文件。现在我希望程序能够编译这些Java文件。

2 个答案:

答案 0 :(得分:15)

JavaCompiler是你的朋友。查看文档here

这里有一个关于如何使用编译器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();

答案 1 :(得分:5)

如果代码是从JRE运行的,JavaCompiler将为null。它需要一个JDK,其中包含tools.jar