Java Process.waitFor()与Process.exitValue()的比较

Java Process.waitFor()与Process.exitValue()的比较,java,shell,process,Java,Shell,Process,java.lang.Process.waitFor()和exitValue()之间是否存在差异?exitValue如果子进程未终止,则抛出一个IllegalThreadStateException,如果子进程终止,则返回退出值 WaitFor将阻止调用线程,直到子进程终止,如果子进程已经终止,则立即返回 因此,我想说,当子流程已经终止时,它们的行为相同,但当子流程仍在运行时,它们的行为不同。 如果子进程正在运行,exitValue将抛出expetion,而waitFor将阻止调用线程。exitV

java.lang.Process.waitFor()和exitValue()之间是否存在差异?

exitValue
如果子进程未终止,则抛出一个
IllegalThreadStateException
,如果子进程终止,则返回退出值

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

因此,我想说,当子流程已经终止时,它们的行为相同,但当子流程仍在运行时,它们的行为不同。
如果子进程正在运行,
exitValue
将抛出expetion,而
waitFor
将阻止调用线程。

exitValue
如果子进程未终止,则抛出
非法线程状态异常
,如果子进程终止,则返回exit值

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

因此,我想说,当子流程已经终止时,它们的行为相同,但当子流程仍在运行时,它们的行为不同。
如果子进程正在运行,
exitValue
将抛出一个expetion,而
waitFor
将阻止调用线程。

exitValue()
如果进程尚未终止,将抛出一个异常<代码>等待()等待。我只是通过查看
exitValue()
在进程尚未终止时抛出一个异常来了解到这一点<代码>等待()等待。通过查看Hmm exitValue()从不抛出非法的TGReadStateException,我就知道了。坦克anyway@sb27Process::exitValue可能会引发异常如果流程未按回答完成,请查看文档:Hmm exitValue()从不引发非法的TgreadStateException。坦克anyway@sb27Process::exitValue可能会引发异常如果流程未按回答完成,请查看文档: