是否可以在线浏览OpenJDK的源代码,就像我可以使用SourceForge的项目一样?我以前从未使用过Mercury,所以感到困惑。
(注:我不想下载源代码。我只是想在线浏览,看看一些方法是如何实现的。)
OpenJDK现在已经在GitHub上了:https://github.com/openjdk/jdk
这是一个庞大的项目,但你可以在jdk / src / java.base / share / classes下找到核心类的实现。
例如,你可以在这里找到java.util.List
的实现。
如果你需要浏览旧版本,仍需使用旧的Mercurial接口。
如果你不熟悉Mercurial接口,可能会感到非常困惑,而且由于这是一个庞大的项目,很难找到你要查找的内容。
这是一个例子:
要找到JDK6中的实现java.util.List
,请选择jdk6
、jdk
,选择浏览。然后浏览到src/share/classes/java/util/List.java
。
你应该到达http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/tip/src/share/classes/java/util/List.java
步骤:
tags
jdk8u73-b02
browse
,src/share/classes
,bz2
/ zip
/ gz
,以相应的压缩格式下载源代码,(例如对于在zip
格式中的jdk8u73-b02
,URL将是:http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/2ab13901d6f1.zip/src/share/classes/)cd jdk-2ab13901d6f1/src/share/
,然后zip -r openjdk_8u73_b2_src.zip classes/
)mv openjdk_8u73_b2_src.zip /media/Eric/software/java/jdk/openjdk/openjdk8u73-b02/source/
)rt.jar
,ctrl + shift + t
,然后输入Cancellable
,选择相应已安装JRE的sun.nio.fs.Cancellable
,
如果源代码可用,则很好,因为该源代码不可在jdk_home/src.zip
中使用,它必须来自附加的openjdk源代码,将“/file”添加到根URL以查看类似于以下方式的浏览器:
Grepcode.com非常适合类似的事情——不仅可以搜索OpenJDK源代码,还可以在高亮代码中直接搜索类/方法和类之间的链接:
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/java/net/Socket.java
当然,http://hg.openjdk.java.net 是一个不错的选择。另一个同样好的资源是 zGrepCode https://zgrepcode.com/java/openjdk/。它包含了Open JDK和Oracle Java版本。