Java需要在完成后返回进程

时间:2015-02-08 09:52:53

标签: java batch-file javacompiler

我的问题需要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文件。

谢谢大家。

1 个答案:

答案 0 :(得分:0)

您可以使用Process#waitFor

  

如果需要,导致当前线程等待,直到进程   由此Process对象表示已终止

Process p = Runtime.getRuntime().exec("cmd /c start build.bat"); 
p.waitFor();