利用 JavaCompiler 编译 Java 类文件

2014-08-20 开源中国

<无详细内容>

import 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<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
 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);
}
}
class MyClass {
 public static void main(String args[]) {
 System.out.println("Hello, World");
}
}