import java.io.BufferedInputStream;
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;
/*
* 动态编译执行代码
*/
public class Test {
public static void main(String[] args) {
//编译 HelloWorld.java <=> javac D:\code\HelloWorld.java
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
// 代码的绝对路径
int status = compiler.run(null, null, null, "D:\\code\\HelloWorld.java");
System.out.println(status == 0 ? "编译成功" : "编译失败");
//执行代码 HelloWorld.java <=> java -cp D:\code\ HelloWorld
Runtime runtime = Runtime.getRuntime();
try {
Process process = runtime.exec("java -cp D:\\code\\ HelloWorld");
BufferedInputStream bufferedInputStream = new BufferedInputStream(process.getInputStream());
byte[] bytes = new byte[1024];
while (bufferedInputStream.read(bytes) != -1) {
System.out.println(new String(bytes, 0, bytes.length));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
java动态编译执行
最新推荐文章于 2023-09-27 16:04:49 发布