您的位置:首页 > 编程语言 > Java开发

java动态编译执行

2018-04-02 15:41 260 查看
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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: