可以在线浏览OpenJDK的源代码吗?


80

就像我可以使用SourceForge的项目一样,是否可以在线浏览OpenJDK的源代码?我以前从未使用过水星,所以感到困惑。

(注意:我不想下载源代码。我只想在线浏览它,以了解如何实现某些方法。)

Answers:


94

OpenJDK现在位于GitHub上:https : //git.openjdk.java.net/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结尾


2
对于尝试此操作的任何人,默认分支号都会更改。因此,所描述的过程是正确的,如果链接不起作用,请不要感到惊讶。
Patrick


3
@Patrick:如果将变更集ID替换为'tip',它将始终有效。它指向的版本可能会随着时间的推移而变化,但是它将始终是最新的(在某种意义上)。我已经相应地编辑了帖子。
汤姆·安德森

4
回购名称中的“ gate”是什么意思?
finnw 2011年

2
现在,如果我想查看实现本机方法的本机代码,在哪里可以找到它们?
乌斯塔曼·桑加特


7

这是基本的步骤,以获取最新的任何发布的版本Openjdk 8(或任何现有的Java版本)的源代码,并使用它们Eclipse

步骤

  • [浏览源]
  • 打开JDK的网址,例如http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/
  • 点击 tags
  • 选择适当的标签,例如 jdk8u73-b02
  • 然后单击browse
  • 然后浏览到文件夹src/share/classes
  • [下载源]
  • 然后单击一个bz2/ zip/ gz,在相关的压缩格式的下载源,(例如,用于jdk8u73-b02zip格式,网址为:http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/2ab13901d6f1.zip/ src / share / classes /
  • [用于日食]
  • 解压缩它
  • 压缩文件夹“ classes /”,将“ classes /”作为.zip文件的根目录(例如cd jdk-2ab13901d6f1/src/share/,然后是zip -r openjdk_8u73_b2_src.zip classes/
  • 将创建的zip文件移动到正确的位置,它将在该位置停留一段时间(例如mv openjdk_8u73_b2_src.zip /media/Eric/software/java/jdk/openjdk/openjdk8u73-b02/source/
  • 在eclipse中,为已安装的jre的jar指定源文件,可以分别为每个已安装的jre的jar指定源附件,最常见的jar可能是rt.jar
  • (可选)可能需要刷新项目以使其完全生效,但不确定是否有必要,
  • 测试它:在eclipse中ctrl + shift + t,然后输入Cancellable,选择sun.nio.fs.Cancellable相应已安装的jre的,如果源代码可用,则很好,因为该源在中不可用jdk_home/src.zip,它必须来自其他openjdk源,
  • 切换回源:如果不想使用外部openjdk源,可以切换回以使用“ jdk_home / src.zip”





By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.