附加Java源代码


70

我一生都无法将Java源代码附加到eclipse上,因此我可以看到该语言的内部工作原理。甚至没有像String Class这样简单的东西。

当我运行java -version时,这就是我所拥有的:

java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)

我正在从以下网站下载Java资源:http//download.java.net/jdk6/source/

当我附加它时,它说:

The JAR file "C:\Program Files\Java\jre6\jdk-6u14-fcs-src-b08-jrl-21_may_2009.jar" 
has no source attachment.

我究竟做错了什么?

Answers:


81

通常,如果您已安装JDK6u14,则eclipse应该检测到它并在其“已安装JRE”列表中自动对其进行声明。

如果没有,您可以通过“ Windows / Preferences”添加该JDK Java > Installed JREs

只需指向您的JDK安装的根目录即可:它应包含JDK(src.zip)的源,该源由rt.jareclipse自动检测并附加到该源。

从pic.dhe.ibm.com/infocenter/iadthelp/v8r0/topic/org.eclipse.jdt.doc.user/tasks/images/task-add_jre_std_vm.PNG添加JRE VM


E:\ Program Files \ Java \ jre6-> Java主页E:\ Sun \ SDK \ jdk->路径变量我有这两个文件夹。我应该指向哪一个?!?JDK和SDK之间有区别吗?我因为在计算机上进行了搜索而找不到src.zip。我在两个文件夹中都有rt.jar,但我不知道该怎么做...
hello_world_infinity

3
在XP下,我从未见过Eclipse选择JDK-仅安装了公共JRE。
托尔比约恩Ravn的安徒生

@ThorbjørnRavn Andersen:如果您在eclipse.ini中启动Eclipse时指定了要使用的vm,eclipse将会检测到它
VonC

问题在于,Sun的源代码与Android的源代码不同。知道如何在Google的设备(Java / JDK API)上找到确切的源代码吗?
2011年

谢谢,但我无法使用此方法找到枚举的valueOf方法的源代码
necromancer 2013年

31

您不一定需要添加源,但是您可能需要删除未附加源JRE

在查看“已安装的JRE”时,我看到我的JDK已正确安装了源代码,但计算机上的默认JRE没有源代码。Eclipse在查找源代码时默认使用它。

我只是使用remove按钮来驱逐JRE,而留下我的JDK。然后我按F3键,源就在那里。是的


1
我非常同意。这个对我有用。确保您要查找的是实现而不是声明。
Ted Corleone

2
答对了!!!Eclipse选择了JRE而不是JDK,尽管JDK被选择为默认的。
dj18

毕竟需要重新启动Eclipse。这是正确的答案!
java-addict301

23

按住ctrl键,然后单击要查看其内部工作的类(例如:),然后在其中String找到“附加源”按钮。点击它。然后单击外部文件夹。然后按实例浏览到您的jdk位置C:\Program Files\Java\jdk1.6.0。而已。

在此处输入图片说明


8

要附加JDK源代码,以便您参考Java源代码进行代码查找,这有助于学习库的实现,有时还有助于调试,您要做的就是:

在您的Eclipse Java项目> JRE参考库中,找到rt.jar。右键单击并转到属性:

在右侧选择“ Java源附件”,在左侧选择“外部位置”,然后单击“外部文件”按钮,在我的Windows机器src.zip位置中,在$ JAVA_HOME路径中找到“ src.zip”文件是:C:/ Program Files / Java / jdk1.7.0_45 / src.zip

现在完成!只需Ctrl +单击项目代码中的任何Java库类,即可查找Java类的源代码。


1
您可以添加屏幕截图吗?我找不到您提到的选项
CyprUS 2015年

7

最简单的方法是安装JDK,并告诉Eclipse将其用作默认JRE。使用默认安装。

(从记忆里)

打开窗口->偏好设置。选择“已安装的Java运行时”,然后选择“添加”。导航到JDK的根目录(\ Programs ... \ Java),然后单击“确定”。然后选择它作为默认的JRE(选中标记)。

重建工作空间后,应该将源附加到所有JRE类。


5

对我有用的简单方法:

  1. 检查是否安装了jdk(通常在“ Program Files \ Java”中,如果没有,请安装它)。
  2. 链接到日食。在首选项-> Java->已安装的JRE中,删除已安装的JRE并添加JDK。

然后,项目将对其进行检测,并从JDK中添加新的库。在此过程结束时,它看起来像是我附加的屏幕截图。

JDK已添加


3

只需在“ Preferences> Java> Installed JRE”中删除JRE,然后添加JDK的文件夹。如果您仅添加JDK但仍然离开JRE,它将无法正常工作


1

对于我(使用JDK7)起作用的是:

  1. GrepCode下载openjdk-xy-sources.jar
  2. 将文件重命名为src.zip
  3. src.zip复制到添加到eclipse的JRE / JDK的根文件夹中(其中包含binlib文件夹)
  4. 重新开始蚀

另外,如果您不想写到JDK文件夹,也可以将src.zip附加到(至少)的rt.jar在eclipse的窗口| Java中的“首选项”菜单| 已安装的JRE

如果您不满意从GrepCode下载源代码,也可以直接从openJDK获取它们。但是,这需要更多的努力。通过以下步骤替换上面的步骤一:

  1. 此处下载JDK源代码,
  2. 从zip文件的* openjdk \ jdk \ src \ share \ classes *文件夹中提取所有文件夹,
  3. 创建一个文件src.zip并将这些文件夹添加到其中,
  4. 复制src.zip到添加到eclipse的JRE / JDK的根文件夹中(其中包含binlib文件夹)
  5. 重新开始蚀

获取src.zip的第三种方法是从此处下载非正式的OpenJDK构建。该src.zip包含下载的zip内。


1

老问题,这就是我最终使用Java Source Attatcher插件得到的结果: http

它可以为不同的开源项目提供源代码。一件奇怪的事,如果您在libs文件夹下有库,则无法从那里进行附加,但是您需要附加源代码,单击“来自外部的库”下显示的jar。


0

“ praveenak”提供的选项也可以应用于提供源文件的任何其他jar文件。例如,对于JavaFx,我们右键单击jfxrt.jar,选择“属性”,然后在“外部”位置下的“路径”中输入jdk1.8.0_05 / javafx-src.zip。


0

您需要附加JDK随附的Java源代码(C:\ Program Files \ Java \ jdk1.8.0_71 \ src.zip)。

步骤(**来源:链接):

  1. 选择任何Java项目
  2. 展开引用的库
  3. 选择任何JAR文件,在本例中为rt.jar,它是Java运行时
  4. 右键单击并转到属性
  5. 通过浏览源路径来附加源代码。

0

使用ScreenShots回答Eclipse 2019

  • 步骤1:窗口->首选项-> Java->已安装的JRE

已安装的JRE

  • 第2步:选择“当前使用的JRE”,现在将启用“编辑”选项,单击“编辑”选项

当前使用的JRE选项

  • 步骤3rt.jar从JRE系统库中选择,单击相应的下拉菜单以展开

rt.jar

  • 步骤4:选择Source attachment none,单击Source Attachment按钮,将出现“源附件配置”窗口,选择external location

源附件外部位置

  • 步骤5src.zip从jdk文件夹中选择文件,说好,好完成

src.zip


1
链接根本没有用。
卡希克·伯库勒

我只是想说,如果链接断开,答案将对其他用户不可用,但是如果您在此处进行说明,那将是很好的。
考希克·伯库勒

这似乎比我10岁的答案要最新;)谢谢您的截图。
VonC


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.