我使用了Process类的方法waitFor来执行一些UNIX命令。该命令正在成功执行,但它返回2
,根据约定意味着abnormal termination。
我用Google搜索并found依赖于“正在输出此退出代码的程序的源代码”。所以我试着找到waitFor方法的源代码,我开始知道它是一个本地方法,在ProcessImpl
类中定义。
public native int waitFor();
所以我searched从here本地实现此方法。但我没有找到为我提供waitFor
方法的原生实现的文件。
我的问题是如何找到写入此方法的本机实现的文件?
答案 0 :(得分:4)
提到的source code
是指您使用Process
对象执行的程序的来源。
在您的情况下,使用Process
执行的UNIX命令正在使用退出代码2终止,而不是waitFor()
方法本身。
因此,要回答您的实际问题,答案是:在您使用的JDK的源代码中,例如here is the source for OpenJDK6。
但是,如果您的实际问题是"为什么waitFor()返回非零退出代码" ,那么答案是:您正在使用Java执行的进程已返回非零退出代码,Process
对象通过返回waitFor()
方法通知您