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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

我对JNI非常熟悉,我很好奇在java.lang包中看到了我的机器特定的一些本地方法的实现。Thread#currentThread(), 例如。

我在[JDK_HOME] / jre / bin中发现了一堆DLL,但就像我说过的,我试图找到源代码。

有谁知道本地源代码可以找到的地方?它是否可用,还是被Sun分类(哎呀我的意思是“我们就是为了赢得它”Oracle)?

提问于
用户回答回答于

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

一些方法,例如Object.hashCode,可以通过热点来实现,或者通过JNI / Java来实现。

JDK6通过Java研究许可证(JRL)和Java内部使用许可证(JIUL)免费获得许可。JDK7和OpenJDK6在GPL 2下获得CLASSPATH例外许可(粗略地说,你可以链接到它而不捕捉GNU病毒)。

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

扫码关注云+社区