【问题标题】:Is it possible to browse the source of OpenJDK online?是否可以在线浏览 OpenJDK 的源码?
【发布时间】:2010-09-29 11:21:03
【问题描述】:

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

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

【问题讨论】:

    标签: mercurial openjdk


    【解决方案1】:

    OpenJDK 现已在 GitHub 上:https://github.com/openjdk/jdk

    这是一个大项目,但你会在jdk/src/java.base/share/classes下找到核心类的实现。

    例如,您可以找到the implementation of java.util.List here


    如果您需要浏览旧版本,您仍然需要使用old Mercurial interface

    如果您不习惯,那里的 Mercurial 界面会很混乱,而且由于这是一个大型项目,因此很难找到您要查找的内容。

    这是一个例子:

    要查找JDK6实现java.util.List,选择jdk6jdk,选择浏览。然后浏览到src/share/classes/java/util/List.java

    你最终应该在http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/tip/src/share/classes/java/util/List.java

    【讨论】:

    • 对于任何尝试此操作的人,默认分支编号都会更改。所以所描述的过程是正确的,如果链接不起作用,请不要感到惊讶。
    • @Patrick:如果您将变更集 ID 替换为“tip”,它将始终有效。它指向的版本可能会随着时间而改变,但它始终是最新的(在某种意义上)。我已经相应地编辑了帖子。
    • repo 名称中的“gate”是什么意思?
    • 现在如果我想查看实现原生方法的原生代码,我在哪里可以找到它们?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      步骤

      • [浏览源代码]
      • jdk 的打开 url,例如http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/
      • 点击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/ )
      • [在 Eclipse 中使用]
      • 解压,
      • 压缩文件夹“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,选择对应安装jre的sun.nio.fs.Cancellable, 如果有源代码就很好了,因为jdk_home/src.zip中没有这个源,一定是来自额外的openjdk源,
      • 切换回源:如果不想使用外部openjdk源,可以切换回使用“jdk_home/src.zip”,
      • 好的

      【讨论】:

        【解决方案4】:

        这是一种浏览存储库并仅查看所需部分的方法。 http://hg.openjdk.java.net/ 你问的是这个吗?

        【讨论】:

        • 不完全是。我在问之前就去了那里,但我在 Mercurial 界面中找不到路。 :(
        • 对不起,我实际上去了openjdk.java.net/projects/nio 并试图从那里找到我的路。我会再次检查这个链接。谢谢。
        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

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

          【讨论】:

            【解决方案7】:

            正如其他答案中提到的,源代码存储库位于https://hg.openjdk.java.net

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

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

            【讨论】:

              【解决方案8】:

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

              【讨论】:

                猜你喜欢
                • 2010-12-31
                • 2011-04-13
                • 2020-11-06
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多