【发布时间】:2010-09-30 09:03:56
【问题描述】:
使用 Eclipse 我想查看核心 Java 类的源代码(例如 java.util.concurrent.ConcurrentHashMap),但是当我使用“打开声明”导航到源代码时,它显示“找不到源”并让我选择附加来源。
我的问题是;我如何附加源?我从哪里获得 java.util.concurrent 库的源 .jar?
【问题讨论】:
使用 Eclipse 我想查看核心 Java 类的源代码(例如 java.util.concurrent.ConcurrentHashMap),但是当我使用“打开声明”导航到源代码时,它显示“找不到源”并让我选择附加来源。
我的问题是;我如何附加源?我从哪里获得 java.util.concurrent 库的源 .jar?
【问题讨论】:
当您在 Eclipse 中编码时,按 CTRL 并单击源代码中的任何核心 Java 类名称。 Eclipse 现在将显示一个屏幕,提示您没有安装源代码。但是,在此屏幕中有一个链接显示“附加源...”。单击该链接并从 JDK 安装目录 (src.zip) 导入 src.zip 文件。这应该可以解决问题
【讨论】:
您需要安装 JDK。那你可以看JDK_INSTALL_DIR\src.zip
对我来说是C:\Program Files\java\jdk1.6.0_11\(取决于您当前的版本)
您不需要获取特殊的开源版本。
【讨论】:
这里有一些关于从何处获取源的好答案。但请注意:我会小心你如何使用它(如果你只是为了参考而使用它)。 API documentation 是您应该编写的唯一合约,也是开发人员将在版本之间保持一致/完整的合约。我不会使用源代码找出实现细节,然后针对这些实现细节对我的应用程序进行编码,因为它们可能会在不同版本之间发生变化。
【讨论】:
当您查看项目的 Java 构建路径时,您应该能够看到“JRE 系统库 [jdk1.x.xxxx]”。
您可以通过以下方式访问项目构建路径配置屏幕:右键单击项目 -> 构建路径 -> 配置构建路径...您应该能够在列表底部看到 JRE 系统库条目。
查看类源代码的最简单方法是使用“Open Type”快捷方式。此快捷方式的默认设置是:Ctrl + Shift + T"。您要查找的类应该会在您键入它的名称时出现。
【讨论】:
您可以前往http://openjdk.java.net/ 并下载 openJDK 项目的最新版本。我认为这应该可以满足您的需求。
【讨论】:
对于 ubuntu,安装 openjdk-6-source 并使用 /usr/lib/jvm/java-6-openjdk/src.zip
【讨论】:
如果您找不到实际的源代码,您也可以使用反编译器从类文件中重新生成源代码。
我个人使用 JAD 结合 JADClipse 插件在 Eclipse 中查看源代码。
【讨论】:
右键项目->构建路径->配置构建路径。 现在编辑您的 jre > 选择第二个选项备用 jre -> 选择任何 jdk (not jre)。 完成,现在通过 ctrl + click 打开任何类,它的源代码将显示出来。
【讨论】:
在 Eclipse 之外,您可以在 javasourcecode.org 上查看 JDK 源代码。在此页面上,您可以从官方 API 文档切换到源代码,反之亦然。
【讨论】:
有一个很好的插件GrepCode 允许查看许多开源库的java 源代码。
【讨论】:
您可以使用 Eclipse Marketplace 中的“Eclipse 类反编译器集成 JD、Jad”。
从 Eclipse Marketplace 的查找框中输入:'jad',您就会找到它。
【讨论】:
src.zip 文件存在于已安装的 jdk 文件夹中:..\Program Files\Java\jdk1.8.0_131
在显示附加源的屏幕上提供此路径...对我有用。
【讨论】:
我们可以看到 C:\Program Files\Java\jdk1.8.0_73\src.zip 其中 C:\Program Files 是我安装 java 的主目录。
在 Eclipse 中,它会显示为 Source not found。 那里的链接将像浏览源一样出现。 浏览链接 C:\Program Files\Java\jdk1.8.0_73\src.zip 并附上它。现在你可以看到你的源代码了。
【讨论】:
@jjnguy 的建议对我有用。但请确保您也更改了默认编译器。右击项目-->Java Compiler->点击JDK Compliance下的链接(右侧部分)。
【讨论】: