Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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
Oracle Java SE JRE中的本机类位于何处?_Java_Oracle - Fatal编程技术网

Oracle Java SE JRE中的本机类位于何处?

Oracle Java SE JRE中的本机类位于何处?,java,oracle,Java,Oracle,我正在研究java标准库类,并意识到有些方法使用了关键字native,如下代码所示: public class FileOutputStream extends OutputStream{ private native void open0(String name, boolean append) throws FileNotFoundException; } 我已经搜索并发现它与jniapi相关,它必须在非java类文件中调用一个方法。但是,我找

我正在研究java标准库类,并意识到有些方法使用了关键字
native
,如下代码所示:

     
    public class FileOutputStream extends OutputStream{

    private native void open0(String name, boolean append)
        throws FileNotFoundException;
}
我已经搜索并发现它与
jniapi
相关,它必须在非java类文件中调用一个方法。但是,我找不到这个文件。在这个案例中它位于哪里?
Tks

本机方法不委托给“方法”,而是委托给本机函数,本机函数不驻留在任何类型的类文件中。而是在特定于平台的动态链接库中。要在JDK中找到给定本机方法的C/C++源代码,您必须克隆OpenJDK的Mercurial存储库,并花一些时间在浩瀚的代码库中找到方向。我建议经常使用
find
+
grep

另外,Oracle SE与OpenJDK不同,但它们共享99%的代码库。此外,由于特定于Oracle的增量是封闭源代码的,因此这当然是您最好(如果不是唯一)的选择