动态编译可以通过两种方式实现:
- 通过Runtime调用javac,启动新的进程去操作
Runtime runtime = Runtime.getRuntime();
try {
Process process = runtime
.exec("javac -cp /User/test/ helloWorld.java");
} catch (IOException e) {
e.printStackTrace();
}
通过JavaCompile 动态编译
如果想要详细了解JavaCompiler,请看官网 https://www.ibm.com/developerworks/cn/java/j-lo-jse64/index.html
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
int result = compiler.run(null, null, null, "src/com/begin/utils/annotation/Demo.java");
System.out.println(result==0?"编译成功":"编译失败");
动态运行的两种实现方法:
1. 通过Runtime来实现动态运行
Runtime run