如何检查Runtime.exec(cmd)是否完成?如何检查Runtime.exec(cmd)是否完成
它正在运行,但我如何检查命令执行或不在java程序中?
如果我使用进程检查然后它阻塞当前线程。如果我停止运行程序,那么Runtime.exec(cmd)正在执行。我该怎么办?
如何检查Runtime.exec(cmd)是否完成?如何检查Runtime.exec(cmd)是否完成
它正在运行,但我如何检查命令执行或不在java程序中?
如果我使用进程检查然后它阻塞当前线程。如果我停止运行程序,那么Runtime.exec(cmd)正在执行。我该怎么办?
Process
实例可以帮助您通过其InputStream和Outpustream操纵运行时的执行。
流程实例有一个waitFor()
方法,该方法允许当前Thread
等待子流程的终止。
要控制流程的完成,您还可以获取运行时的exitValue
,但这取决于流程返回的内容。
下面是如何使用waitFor
并获取处理结果的简单示例(请注意,这会阻止当前的线程,直到进程结束)。
public int runCommand(String command) throws IOException
{
int returnValue = -1;
try {
Process process = Runtime.getRuntime().exec(command);
process.waitFor();
returnValue = process.exitValue();
} catch (InterruptedException e) {
e.printStackTrace();
}
return returnValue;
}
http://stackoverflow.com/questions/6873830/in-java-determine-if-a-process-created-using-runtime-environment-has-finished-ex –
如果我关闭当前线程然后cmd正在执行。 – jagannath
关闭当前线程是什么意思? –