原生方法'在jdk源代码中实现?

时间:2017-01-15 03:19:41

标签: java

我试图找到Inet4AddressImpl包的java.net类的私有方法的实现。我在我的jdk目录中尝试了grepcode和src.zip。

我在上述课程中寻找的实现方法:

private native boolean isReachable0(byte[] addr, int timeout, byte[] ifaddr, int ttl) throws IOException;

因此,作为本机代码,我认为它的实现将取决于操作系统。所以我只想知道我是否以及在哪里可以找到它的实现以及其他原生方法!
感谢

2 个答案:

答案 0 :(得分:1)

在线搜索OpenJDK Mercurial存储库确实总是有点困难。 GitHub上有一些JDK源代码镜像,它具有更好的搜索功能 - 例如:

https://github.com/openjdk-mirror/jdk7u-jdk/search?utf8=%E2%9C%93&q=isReachable0

通常你可以从结果路径的某些部分“猜测”,你必须查看原始的OpenJDK仓库,这里,这将是

http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/82b276590b85/src/windows/native/java/net/Inet4AddressImpl.c#l416

(对于Windows - 可以通过浏览相应操作系统的相应路径找到其他实现)

答案 1 :(得分:0)

您可以在jdk文件夹中的src.zip文件中找到此源代码文件。

E.g。对于Windows,您可以在此屏幕截图中找到它。 enter image description here

我看到你正在寻找方法isreachable0的源代码。我刚刚在Windows上检查了类inet4address及其父类inetaddress的源代码。它们都不包含此方法。父类inetaddress包含另一个可以访问的方法,但它具有不同的签名。我认为这种方法(如果有的话)仅在某些平台的JDK中可用。