84

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

(注:我不想下载源码,只是想上网浏览一下,看看有些方法是怎么实现的。)

4

8 回答 8

98

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

于 2009-01-04T10:05:31.497 回答
8

最新的JDK 8 OpenJDK Java 类库源代码可以在这里找到:http: //hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/share/classes/

于 2013-07-20T12:25:09.313 回答
7

这是获取最新任何已发布版本Openjdk 8或任何现有 java 版本)源代码的基本步骤,并在Eclipse.

步骤

  • [浏览源码]
  • jdk 的打开 url,例如http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/
  • 点击tags
  • 选择合适的标签,例如jdk8u73-b02
  • 然后点击browse,
  • 然后浏览到文件夹src/share/classes
  • [下载源]
  • 然后单击bz2/ zip/之一gz,以下载相关压缩格式的源,(例如对于jdk8u73-b02格式zip,URL将为:http ://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/2ab13901d6f1.zip/ src/share/classes/ )
  • [在日食中使用]
  • 解压它,
  • 压缩文件夹“classes/”,将“classes/”作为 .zip 文件的根目录,(例如 first cd jdk-2ab13901d6f1/src/share/,then 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源,
  • 切换回源:可以切换回使用“jdk_home/src.zip”,如果不想使用外部openjdk源,
于 2016-03-18T08:13:18.000 回答
6

这是一种浏览存储库并只查看您想要的位的方法。 http://hg.openjdk.java.net/ 这就是你要问的吗?

于 2009-01-04T09:48:38.380 回答
6

将“/file”附加到根 URL 以查看浏览器,如下所示:

于 2013-09-12T22:40:27.773 回答
2

Grepcode.com非常适合类似的事情 - 不仅是 OpenJDK 源代码,还可以直接在突出显示的代码中搜索类/方法和类之间的链接:

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/java/net/Socket.java

于 2014-09-16T17:04:47.363 回答
2

如其他答案中所述,源代码存储库位于https://hg.openjdk.java.net

但是,OpenJDK 团队镜像了 GitHub 上的一些项目:https ://github.com/openjdk

包括最新的Java版本项目https://hg.openjdk.java.net/jdk/jdk):https://github.com/openjdk/jdk

于 2019-04-20T14:10:06.857 回答
1

当然http://hg.openjdk.java.net是一个不错的选择。另一个同样好的来源是zGrepCode https://zgrepcode.com/java/openjdk/。它有 Open JDK 和 Oracle java 版本。

于 2018-07-27T20:42:49.467 回答