使用 JavaCompiler 编译 Java 类文件,javacompilerjava,DiagnosticCo
DiagnosticCollectorCompile.javaimport java.io.IOException;import java.util.Arrays;import javax.tools.DiagnosticCollector;import javax.tools.JavaCompiler;import javax.tools.JavaFileObject;import javax.tools.StandardJavaFileManager;import javax.tools.ToolProvider;public class DiagnosticCollectorCompile { public static void main(String args[]) throws IOException { JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); DiagnosticCollector diagnostics = new DiagnosticCollector(); StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null); Iterable extends JavaFileObject> compilationUnits = fileManager .getJavaFileObjectsFromStrings(Arrays.asList("Foo.java")); JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null, null, compilationUnits); boolean success = task.call(); fileManager.close(); System.out.println("Success: " + success); }}
MyClass.javaclass MyClass { public static void main(String args[]) { System.out.println("Hello, World"); }}