支持多个文件动态编译的代码段:
/** * @param srcFiles */ private void compileTheJavaSrcFile(File ... srcFiles) { try { JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); StandardJavaFileManager fileMgr = compiler.getStandardFileManager(null, null, null); CompilationTask t = compiler.getTask(null, fileMgr, null, null, null, fileMgr.getJavaFileObjects(srcFiles)); t.call(); fileMgr.close(); } catch (Throwable e) { throw new RuntimeException("Fail to compile files [" + srcFiles + "]", e); } }
原文:http://my.oschina.net/frankies/blog/494094