Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 原生方法';jdk源代码中的实现?_Java - Fatal编程技术网

Java 原生方法';jdk源代码中的实现?

Java 原生方法';jdk源代码中的实现?,java,Java,我试图找到java.net包的Inet4AddressImpl类的私有方法的实现。我尝试了jdk目录中的grepcode和src.zip 我在上述类中寻找其实现的方法: private native boolean isReachable0(byte[] addr, int timeout, byte[] ifaddr, int ttl) throws IOException; 因此,作为本机代码,我假设它的实现依赖于操作系统。所以我只想知道我是否可以在哪里找到它的实现以及其他本地方法! 谢谢

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

我在上述类中寻找其实现的方法:

private native boolean isReachable0(byte[] addr, int timeout, byte[] ifaddr, int ttl) throws IOException;
因此,作为本机代码,我假设它的实现依赖于操作系统。所以我只想知道我是否可以在哪里找到它的实现以及其他本地方法!

谢谢

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

例如,对于Windows,您可以在此屏幕截图中找到它


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

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

通常,您可以从原始OpenJDK repo中必须查看的部分结果路径中“猜测”,这里是


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

可能的副本实际上可能会有所帮助,但接受答案中的下载链接似乎不起作用。我甚至尝试在oracle站点上搜索jdk源代码,但也没有什么帮助,无法准确地找到我要找的内容。Openjdk源代码似乎是其他SO问题所建议的一种替代方案(虽然还没有亲自尝试过),但我认为最好在这里问一个问题。是的,我已经这样做了,正如我所提到的,但无法找到我想要的。@PSuniq。哦,我知道您正在寻找方法的源代码
isreachable0
。我刚刚在Windows上检查了类
inet4address
及其父类
inetaddress
的源代码。它们都不包含此方法。父类inetaddress包含另一个方法
isreachable
,但它具有不同的签名。你在开发什么平台?我认为这种方法,如果有的话,只在某些平台上可用。我使用的是windows。我认为它可以在所有具有本机功能以支持其需求的平台上使用。作为一种本地方法,它的实现显然应该是平台依赖的。对于java方法,你说的是可以的,但对于像C++或C++编写的本地方法来说,这是不可能的。