为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

智慧大石 2019-11-14 10:54:28

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


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


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


查看完整描述

2 回答

?
繁华开满天机

对于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


查看完整回答
反对 回复 2019-11-14
?
12345678_0001

您可以查看OpenJDK的源代码(具有Classpath Exception的GPLv2许可)。除非您希望受Java Research License的约束,否则这可能是研究JDK实现内部的最佳方法,在这种情况下,您可以访问实际的JDK 6源。


查看完整回答
反对 回复 2019-11-14

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信