我在哪里可以看到 Sun JDK 的源代码?

Posted

技术标签:

【中文标题】我在哪里可以看到 Sun JDK 的源代码?【英文标题】:Where can I see the source code of the Sun JDK? 【发布时间】:2010-09-20 15:13:04 【问题描述】:

我想看看Java是如何实现LinkedList的。应该去哪里看源码?

【问题讨论】:

是jdk的源码,不是jvm。 【参考方案1】:

这里:

http://hg.openjdk.java.net/

【讨论】:

【参考方案2】:

从http://java.sun.com/javase/downloads/index.jsp 安装 Java SE 开发工具包。

安装后,您应该会在 JDK 安装目录的顶部找到一个名为 src.zip 的存档。 Java源代码在里面。

文件是java/util/LinkedList.java

更新:您可能还想访问在线OpenJDK Source repository。请参阅下面的this answer。

【讨论】:

Bill,最新的 Java 更新 (7u51) 似乎不是这种情况。我想知道这笔交易是什么...... 他们好像把JDK源移到hg.openjdk.java.net/jdk7/jdk7/jdk 其实我想通了。我下载了错误的 JDK 包。 =/【参考方案3】:

我会说从 OpenJDK repository 开始,但我看不到任何 LinkedList 对象。

【讨论】:

【参考方案4】:

你有docjar中的来源:

LinkedList.java(来自openjdk-7)

【讨论】:

+1,第一个链接仍然有效,可以在线查看 对我来说似乎已经过时了。上次更新是 2010 年,所以没有 Java 8 :( @Qw3ry 这确实是可能的。这是十一年前我在这个网站上的第一个答案。【参考方案5】:

如前所述,如果您在安装过程中选择了 src.zip 文件,那么您已经随 Sun JDK 一起安装了它。 此外,如果您使用 eclipse 并将 JDK 添加到您的 JRE 列表中,它会自动将源附加到 jar 并且如果您尝试使用 Ctrl+Shift 打开一个类+T(Open Type),你输入LinkedList,它会显示类的代码。

【讨论】:

【参考方案6】:

如果你有 JDK,你可以在 src.zip 文件中找到源代码。

如果您有 IDE,您只需 ctrl+click 或类似的方法即可查看您想要查看其定义的类/方法。

【讨论】:

Intellij Idea 没有自动找到 src 文件。感谢您提供文件参考。【参考方案7】:

来源托管在hg.openjdk.java.net。您可以在src/share/classes 下找到特定 JDK 版本的库源。例如,java.util.LinkedList 的 JDK 8 源代码位于:

hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/share/classes/java/util/LinkedList.java

您可以按照说明here 探索源代码。

【讨论】:

【参考方案8】:

grepcode.com 拥有几乎所有开源项目的源代码。 它还提供了常见的 IDE 功能,例如查找用法、派生类型等。

在这里您可以找到 LinkedList 源: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/LinkedList.java/

【讨论】:

【参考方案9】:

查看 java 源代码的最佳方式是安装 Intelli-J 社区版。创建一个新的 Java 项目并在您的项目中创建一个新类。 类里面如果想看LinkedList的源码,新建一个LinkedList对象,如下:

public class LinkedListWatch
   public static void main(String[] args)
    LinkedList linkedList = new LinkedList();

  

现在ctrl + mouse left clickLinkedList 类,将带你到LinkedList 源代码。 你可以探索很多东西,它可能非常有用。

你也可以看看 Stack 类的实现;很有帮助。

享受搜索java开源代码的乐趣。

【讨论】:

如果没有附加的源文档,这将没有用。为什么在阅读解释从何处获取源文档的其他答案之后还要发布此内容? 我确定你错过了什么,我发现在 Intellij 中查找 Java 源代码非常方便,请查看我更新的帖子以获取屏幕截图 这对 IntelliJ 来说很好,但是当您使用 Java 的 IBM 实现并且它们不包含 Java 源文档时呢?有人应该下载 IntelliJ 来查看它们吗?我不同意,他们应该像比尔在 08 年回答的那样做;导航到 src.zip 以查看/附加源代码。 @superPhreshHackerKid 您可以在 Eclipse 和几乎任何 IDE 中执行此操作。另外,您可以像浏览项目一样浏览源代码。这比自己处理 src.zip 要好得多。【参考方案10】:

zGrepCode 有一个 Java 开源代码的在线目录。以下是可用的 Sun Java 类:https://zgrepcode.com/java/openjdk/10.0.2/java.base/sun/

这里是LinkedList 的实现代码。希望对您有所帮助。

【讨论】:

以上是关于我在哪里可以看到 Sun JDK 的源代码?的主要内容,如果未能解决你的问题,请参考以下文章

JDK8u40 的 src.zip 在哪里?

在哪里可以找到 JDK 8/JavaFX 8 源代码? [关闭]

Java HotSpot中内在方法的汇编实现代码在哪里?

在libselinux中哪里可以找到函数“ setcon”的源代码?

错误代码在哪里定义?

我怎样才能看到缩小代码的效果