java - 在哪里可以找到 java.lang native 方法的源代码?

标签 java java-native-interface native

我对 JNI 有点熟悉。 ,并且我很想看到 java.lang 包中某些 native 方法的特定于机器的实现。 Thread#currentThread(),例如。

我在 [JDK_HOME]/jre/bin 中找到了一堆 DLL,但就像我说的那样,我正在尝试查找源代码。

有谁知道在哪里可以找到 native 源代码?它甚至可用,还是被 Sun 分类(哎呀,我的意思是“我们在它中赢得它”Oracle)?

最佳答案

对于 JDK6,您可以从 java.net 下载源代码.对于java.lang,故事从j2se/src/share/native/java/lang/开始,然后搜索……JDK7稍微重新排列了目录结构。

一些方法,例如Object.hashCode,可以通过热点代替或补充通过JNI/Java实现。

JDK6 通过 Java Research License (JRL) 和 Java Internal Use License (JIUL) 免费获得许可。 JDK7 和 OpenJDK6 在 GPL 2 下获得许可,但带有 CLASSPATH 异常(exception)(粗略地说,您可以链接到它而不会感染 GNU 病毒)。我不是律师。

(顺便说一句:真正的律师想指出,我仍然是 Sun Microsystems 的员工。 Sun UK 已不复存在。它是现在 Oracle。)

更新(为 Thread.c 添加位置): http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/native/java/lang/Thread.c

关于java - 在哪里可以找到 java.lang native 方法的源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2292629/

相关文章:

Java驱动程序按时间戳删除分区

java - 在android中重新安排定时器

java - JNI 可以处理任何 dll 文件(Windows)吗?

visual-c++ - C++ 在 native 代码中声明托管变量

javascript - 不是导入函数的函数错误

java - 如何让我的 JavaFX 程序加载文件?

java - 用于添加图像的 Wicket 拖放功能

java - jpod 库在 eclipse 之外不工作

java - 从 Eclipse 中的 build.xml 文件导入库

将文件共享到任何可能的应用程序的 iOS native 方式