Java Process.waitFor() 与 Process.exitValue()

sb2*_*b27 2 java shell process

java.lang.Process.waitFor() 和 exitValue() 之间有区别吗?

Sus*_*ger 5

exitValueIllegalThreadStateException如果子进程未终止,则抛出异常;如果终止,则返回退出值。

WaitFor将阻塞调用线程,直到子进程终止,如果子进程已经终止,则立即返回。

所以我想说,当子进程已经终止时,它们的行为都是相同的,但当子进程仍在运行时,它们的行为会有所不同。如果子进程正在运行,exitValue将抛出异常并waitFor阻塞调用线程。