我是一名c++工程师,所以请温文点!我有一些启动进程的Java代码,但我想要做的是暂停执行,直到新进程完成。
我如何在Java中做到这一点?
谢谢
发布于 2013-07-17 19:12:47
假设您有一个表示新创建的进程的Process
对象,请使用Process.waitFor()
,它:
如果有必要,
会使当前线程等待,直到此process对象所代表的进程终止。如果子进程已经终止,此方法将立即返回。如果子进程尚未终止,则调用线程将被阻塞,直到子进程退出。
可以从以下位置获取Process
对象:
ProcessBuilder.start()
Runtime.exec()
(其中有几个重载)。发布于 2013-07-17 19:13:19
如果“java.lang.Process
”是由java.lang.Runtime
获得的进程,则使用Process.waitFor()
出于完整性的考虑:在Java语言中,通常使用线程,等待线程的选项是调用thread.join()
发布于 2013-07-17 19:17:17
Read the stream from Process
。它将等待进程完成,然后再执行其余代码。
Process p = Runtime.getRuntime().exec("your command(process)", null, new File("path of process where to execute"));
InputStream is=p.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line = reader.readLine();
while (line != null) {
line = reader.readLine();
}
https://stackoverflow.com/questions/17698252
复制相似问题