JavaCompiler
可以在代码运行的过程中调用Java编译器的接口,在程序中编译java文件,或内存字符串,产生class文件
主要方法
- run
编译时生成class文件,不能指定输出路径,监控错误信息,调用后就在source目录生成class文件,也就是必须在硬盘中要有java文件。
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
//参数一:输入流
//参数二:输出流
//参数三:错误流
//参数四:要编译的Java文件路径,可以是多个
//返回值:0 表示编译成功 1 失败
int run = compiler.run(null, null, null, "C:/Users/Administrator/Desktop/Hello.java");
System.out.println(run);
- getTask
拥有run方法的全部功能,可以编译字符串成class文件。不需要存在java文件,在内存中编译class。
public static void main(String[] args) {
compileJavaFromString();
}
public static void compileJavaFromString() {
StringBuilder sb = new StringBuilder();
String className = "Hello";
sb.append("public class Hello{\n");
sb.append(