rocess.waitFor(); 返回null
时间: 2024-02-06 13:09:42 浏览: 78
rocess review 收购和兼并部 internal.ppt
`Process.waitFor()` 方法返回一个整数值,表示进程的退出值。如果返回null,可能是因为进程还没有退出,或者出现了异常。你可以在调用`waitFor()`方法之前,先调用`isAlive()`方法检查进程是否还在运行。此外,也可以在调用`waitFor()`方法时加入超时时间,避免无限等待导致程序阻塞。例如:
```
if (process.isAlive()) {
try {
process.waitFor(5, TimeUnit.SECONDS);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
int exitValue = process.exitValue();
```
这里使用了`waitFor(long timeout, TimeUnit unit)`方法,表示最多等待5秒钟。如果进程在指定时间内没有退出,会抛出`InterruptedException`异常。最后获取进程的退出值,如果进程还在运行,会抛出`IllegalThreadStateException`异常。
阅读全文