【发布时间】:2011-06-18 01:54:56
【问题描述】:
我有一个 Main.java 和 Test.java 类,我想在 Test.java 代码中编译和运行 Main.java。这是我的代码
Process pro1 = Runtime.getRuntime().exec("javac Main.java");
pro1.waitFor();
Process pro2 = Runtime.getRuntime().exec("java Main");
BufferedReader in = new BufferedReader(new InputStreamReader(pro2.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
我只是在 Main.java 中打印“ok”,但这段代码没有打印任何内容。有什么问题?
【问题讨论】:
-
看起来你正在寻找docs.codehaus.org/display/JANINO/Home ;) .
-
@phihag 这只是 java 代码示例。我将用 c/c++ 代码和 ohters 来概括它
-
你不应该使用
Process.getOutputStream吗? -
进程的
exitValue()是什么?它们在 ErrorStreams 中输出什么? -
对我来说很好。您确定 java 和 javac 在 PATH 中吗?如果您从命令行运行这些命令,它会起作用吗?如果您想更好地控制编译过程,您可能还希望使用 javax.tools 包进行编译。
标签: java process runtime.exec