在继续Java之前等待进程完成

基本上,我正在制作一个小程序,它将安装一些软件,然后运行一些基本命令来准备该进程.但是,正在发生的是进程开始安装,然后立即转到以下行(注册,更新等).当然,在完全安装之前不会发生这种情况,因此我想在运行第二个进程之前找到一种等待第一个进程的方法.例如,
Main.say("Installing...");
    Process p1 = Runtime.getRuntime().exec(dir + "setup.exe /SILENT");
    //Wait here, I need to finish installing first!
    Main.say("Registering...");
    Process p2 = Runtime.getRuntime().exec(installDir + "program.exe /register aaaa-bbbb-cccc");
    Main.say("Updating...");
    Process p4 = Runtime.getRuntime().exec(installDir + "program.exe /update -silent");
拨打 Process#waitFor()

.它的Javadoc说:

Causes the current thread to wait, if necessary, until the process represented by this Process object has terminated.

额外:您获得子流程的退出值.因此,您可以检查代码是否已成功退出,或者是否发生错误(非零退出代码).

翻译自:https://stackoverflow.com/questions/17972380/wait-for-process-to-finish-before-proceeding-in-java