File f = new File("T1.java");
if (f.exists()) f.delete();
// 生成代码文件
PrintWriter pw = new PrintWriter(new FileWriter("T1.java"));
pw.println("public class T1{");
pw.println("public static void main(String[] args) throws Exception{");
pw.println("System.outprintln(\"Hello Java!\");");
pw.println("}}");
pw.close();
// 编译T1.java javac T1.java
Process process = Runtime.getRuntime().exec("cmd /c javac T1.java");
boolean runnable = true;
// process.getInputStream()用于获取进程的输出信息,不是报错信息。如果需要获取报错信息则应该使用process.getErrorStream()
// javac编译通过实际上是没有响应信息,所以这里获取响应信息是不正确的
BufferedReader br = new BufferedReader(new InputStreamReader(process.getErrorStream()));
while (true) {
String temp = br.readLine();
if (temp == null) break;
System.out.println(temp);
runnable = false;
}
// 运行T1.class
if (runnable) {
process = Runtime.getRuntime().exec("cmd /c java T1");
br = new BufferedReader(new InputStreamReader(process.getInputStream()));
while (true) {
String temp = br.readLine();
if (temp == null) break;
System.out.println(temp);
}
}
Java 动态生成代码并编译执行
最新推荐文章于 2024-04-23 18:52:22 发布