Process.waitFor方法的本机实现

时间:2014-07-23 16:07:04

标签: java java-native-interface

我使用了Process类的方法waitFor来执行一些UNIX命令。该命令正在成功执行,但它返回2,根据约定意味着abnormal termination

我用Google搜索并found依赖于“正在输出此退出代码的程序的源代码”。所以我试着找到waitFor方法的源代码,我开始知道它是一个本地方法,在ProcessImpl类中定义。

public native int waitFor();

所以我searchedhere本地实现此方法。但我没有找到为我提供waitFor方法的原生实现的文件。

我的问题是如何找到写入此方法的本机实现的文件?

1 个答案:

答案 0 :(得分:4)

提到的source code是指您使用Process对象执行的程序的来源。

在您的情况下,使用Process执行的UNIX命令正在使用退出代码2终止,而不是waitFor()方法本身。

因此,要回答您的实际问题,答案是:在您使用的JDK的源代码中,例如here is the source for OpenJDK6

但是,如果您的实际问题是"为什么waitFor()返回非零退出代码" ,那么答案是:您正在使用Java执行的进程已返回非零退出代码,Process对象通过返回waitFor()方法通知您