动态编译
- Java6.0引入了动态编译机制
- 动态编译的应用场景
- 可以做一个浏览器断编写java代码,上传到服务器编译和运行的在线评测系统。
- 服务器动态的加载某些类文件进行编译
动态编译的两种做法:
通过Runtime调用javac,启动新的进程去操作
Runtime run = Runtime.getRuntime(); Precess process = run.exec("javac -cp d:/myjava/ HelloWorld.java");
- 通过JavaCompiler动态编译
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); //如果编译成功返回值为0,返回非0值表示编译不成功 int result = compiler.run(null, null, null, "filename");