在哪里可以找到Java JDK源代码?

时间:2010-05-24 11:51:23

标签: java

我想看看Java API中的方法是做什么的。所以我想要JDK源代码。 在我重新安装Linux之前,我有src.zip包,其中包含所有官方源代码。我只需要告诉Eclipse这个文件在哪里,我就能看到代码。但是现在我再也没有这个文件......

所以问题是: 我在哪里可以找到它?

10 个答案:

答案 0 :(得分:124)

您还没有说出您想要的版本,但JDK 8源代码的归档可以是downloaded here,还有JDK 7JDK 6

此外,您可以浏览或克隆Mercurial存储库:876

答案 1 :(得分:27)

您可能已经获得了JDK的源代码,这是找到它的位置的问题。如果JDK文件夹不包含源代码:

sudo apt-get install openjdk-7-source

OSX人,搜索自制公式。

在ubuntu中,上面的命令会将你的源文件放在:     / usr / lib中/ JVM /的openjdk-7 /

好消息是Eclipse已经将你带到那里(如何将Eclipse绑定到Java源代码):

按照橙色按钮

enter image description here enter image description here enter image description here

答案 2 :(得分:10)

我的Ubuntu遇到了这个问题。

我需要做的就是获得我的java安装的来源:

sudo apt-get install sun-java6-source 

答案 3 :(得分:8)

我目前在OSX Mountain Lion上使用的JDK 1.6也没有带src.zip,据我所知,不再支持OSX JDK for 1.6。

所以我下载了OpenJDK源代码(使用接受的答案(+1)中的链接)然后运行:

cd ~/Downloads
mkdir jdk6src
cd jdk6src
tar xf ../openjdk-6-src-b27-26_oct_2012.tar.gz
cd jdk/src/share/classes
jar cf /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/src.jar *

(您的文件名和路径可能会有所不同......)

src.jar与IDE中的相应Java平台相关联,您应该很高兴。

OpenJDK源和我当前正在运行的JDK之间存在一些差异(在调试器中,行号不匹配),但是如果你想要的只是一个zip / jar来指向你的IDE对于相对较少的情况,你需要查看一些代码来理解某些东西是如何工作的,那么这应该可以解决问题。

答案 4 :(得分:4)

此文件包含在standard JDK download中。您的Linux系统也可能在存储库中有JDK。在我的Ubuntu Linux文件位于:/usr/lib/jvm/java-6-sun-1.6.0.20/src.zip

答案 5 :(得分:4)

在JDK 8中可以在/src.zip中找到源代码。现在在一些中间版本中,此zip文件已丢失,但它仍然可用。enter image description here

确保您从安装向导中选择源。

答案 6 :(得分:2)

这里是jdk源的官方链接。 http://www.oracle.com/technetwork/java/javase/downloads/index.html (您可能需要滚动到页面底部)

答案 7 :(得分:2)

好吧,我在Mac上打开了终端并键入: “echo $ JAVA_HOME” 然后我得到了目录,去了那里找到了src.zip

答案 8 :(得分:1)

是!!明白了!

我从sun.com for Linux下载了Java Developer Kit(JDK)。有src.zip。但首先我用synaptic卸载了所有Java包。

答案 9 :(得分:1)

官方链接不再提供原始源代码。官方链接和随意谷歌搜索将打开你的开放jdk。 除非修改了构建脚本文件,否则打开jdk会导致android构建问题。原始包可以在这里找到:

sudo add-apt-repository“deb http://ppa.launchpad.net/ferramroberto/java/ubuntu oneiric main”

这个repo仍然有sun-java6-source包。 信用: http://pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html