在java中编译一个java文件,用代码进行编译:
public static void main(String[] args) throws Exception{
//编译(compiler)
String filename = System.getProperty("user.dir") + "/src/cn/com/jit/test/Cat.java";
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
Iterable it = fileManager.getJavaFileObjects(filename);
CompilationTask ct = compiler.getTask(null, fileManager, null, null, null, it);
ct.call();
fileManager.close();
//load class into memory and create an instance
URL[] urls = new URL[]{new URL("file:/" + System.getProperty("user.dir") + "/src/")};
URLClassLoader ul = new URLClassLoader(urls);
Class c = ul.loadClass("cn.com.jit.test.Cat");
System.out.println(c);
}