从Java中编译外部.java文件

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

JavaCompiler是你的朋友。 请查看此处的文档

这里有一个关于如何使用编译器API的示例

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

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