如何检查 Runtime.exec(cmd) 是否完成?
它正在运行,但如何检查 java 程序中的命令是否执行?
如果我使用进程来检查,那么它会阻塞当前线程。如果我停止运行程序,则 Runtime.exec(cmd) 正在执行。我应该怎么办?
The Process https://docs.oracle.com/javase/8/docs/api/java/lang/Process.html实例可以帮助您通过其输入流和输出流来操纵运行时的执行。
该流程实例有一个waitFor() https://docs.oracle.com/javase/8/docs/api/java/lang/Process.html#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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)