在Java中实现进程之间的等待?

在Java中实现进程之间的等待?,java,process,exec,wait,Java,Process,Exec,Wait,我希望得到一些帮助来理解和实现我的应用程序中不同进程之间的“等待进程完成”,这需要以逐步方式进行。我的java文件运行一个批处理文件,然后运行一个脚本。最后,我需要(通过命令行)连续运行一系列命令。我正在使用: Runtime.getRuntime().exec("cmd /c start " + command) 运行批处理文件和命令(不确定该信息是否相关)。现在发生的是,我的应用程序中需要执行的第二个步骤是在第一个步骤(运行运行脚本的批处理文件)完成之前执行的。在运行下一系列命令之前,我需

我希望得到一些帮助来理解和实现我的应用程序中不同进程之间的“等待进程完成”,这需要以逐步方式进行。我的java文件运行一个批处理文件,然后运行一个脚本。最后,我需要(通过命令行)连续运行一系列命令。我正在使用:

Runtime.getRuntime().exec("cmd /c start " + command)

运行批处理文件和命令(不确定该信息是否相关)。现在发生的是,我的应用程序中需要执行的第二个步骤是在第一个步骤(运行运行脚本的批处理文件)完成之前执行的。在运行下一系列命令之前,我需要完成第一步。我真的希望我说的有道理

您能将这一系列命令放入它自己的批处理文件中吗

否则,您可以使用获取对象并调用它:

如有必要,使当前线程等待,直到此
进程
对象表示的进程终止

EDIT:实际上,返回的是一个
进程,因此您根本不需要处理
ProcessBuilder
部分。

exec()返回一个进程实例,您可以在该实例上执行waitFor()

不过要小心:我认为“start”实际上会派生出一个单独的Windows进程,因此waitFor()可能会在命令完成之前返回。尝试从命令行中删除“开始”?

简单:

只需调用流程实例的waitFor()方法。 它将停止线程,直到外部进程终止