我的问题需要2个问题,但我会保持简短。所以我需要启动一个bat文件。现在我这样做:
public static void check() throws InterruptedException{
try {
Runtime.getRuntime().exec("cmd /c start build.bat");
Thread.sleep(3000);
} catch (IOException e) {
e.printStackTrace();
}
}
bat文件启动java编译器以编译另一个java文件并将错误消息定向到txt文件。这就是bat文件的样子:
@echo off
javac -Xstdout error.txt MainApp.java
exit
现在的问题是,我必须包含3秒的睡眠,以确保错误已经创建并填充了错误。这非常令人不满意。我要么需要来自bat文件的返回值,所以我在程序的其余部分等待,直到它完成或从程序中启动java编译器的方法和将错误消息定向到txt文件。
谢谢大家。
答案 0 :(得分:0)
您可以使用Process#waitFor
:
如果需要,导致当前线程等待,直到进程 由此Process对象表示已终止
Process p = Runtime.getRuntime().exec("cmd /c start build.bat");
p.waitFor();