一尘不染

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

java

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

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

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


阅读 549

收藏
2020-03-24

共1个答案

一尘不染

对于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病毒)。

2020-03-24