如何檢查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
關閉當前線程是什麼意思? –