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


153

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

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


16
我总是src.zip在JDK安装目录中找到包含公共Java API的文件。这就是您要寻找的东西(我主要使用Windows,所以Linux发行版可能没有)。
Ash,2010年

16
这是荒谬的,当搜索JDK源代码时,这个问题在Google中排名第3。#1和#2是没有源代码链接的Oracle链接。安装JDK时,我总是会遇到这个问题。请甲骨文。
Andrzej Rehmann 2014年

4
src.zip仅是核心API的源包。Oracle没有提供整个Java SE的公开可用资源,某些部分是封闭源。但是,根据平台的不同,您可以在OpenJDK二进制文件上安装和使用100%可用源。对于源-转到openjdk.java.net并为所需版本克隆源库。对于二进制文件-一些供应商提供了此类二进制文件,包括用于Linux的IcedTea。
伊万·克里洛夫

1
@Hoto,自1996年以来我就一直在使用Java,但我一直在努力寻找JDK7的oracle src.zip。这真是愚蠢。它在哪里???以前从未如此困难。注意,我不需要OpenJDK。

2
@Ash,我以前也总是在安装目录中找到src.zip。然后将其解压缩到./src/目录,一切正常。但是现在不存在。实际上,JDK 1.7自述文件指示应该存在src.zip。而且没有。这太疯狂了。

Answers:


128

您尚未说出所需的版本,但是可以在此处下载 JDK 8源代码的存档以及JDK 7JDK 6

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


1
是; 假设我要6,然后在该下载页面上,我要下载什么?大文件jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MB?我已经下载了那个。但不包含源代码。
马丁·考特

3
@Martijn:您是否尝试过下载大的jar文件,然后阅读其中的自述文件?基本上,您只是使用来运行它java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar。它将提取源。
乔恩·斯基特

2
我做到了。我像你写的那样提取了它。但是其中没有源jar或zip。
马丁·考特

1
只是想补充一下,当前(2013年)的位置现在是jdk7.java.net,它可以重定向到OTN进行任何下载。
Kedar Mhaswade


32

可能您已经使用JDK获得了源代码,因此只需查找它的位置即可。如果JDK文件夹不包含源代码,则:

sudo apt-get install openjdk-7-source

OSX Folks,搜索自制公式。

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

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

跟随橙色按钮

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明


16

可悲的是,在撰写本文时,尽管拥有自己的文档自述文件,但在下载Windows版本时,JDK 7或8安装目录中没有 src.zip 。

注意:可能发生这种情况是因为我们许多人实际上并未运行install .exe,而是将其解压缩了。出于安全原因,我们中的许多人不运行Java安装(完整的Windows安装)....我们只是希望JDK放置在潜在病毒无法找到的地方。

但是他们关于windows .exe(无论它是什么)的政策确实是胡说八道,但是 src.zip 确实存在于Linux安装程序(.tar.gz)中。有多种提取.tar和.gz的方法,我更喜欢免费的“ 7Zip”实用程序。

  1. 下载Linux 64位.tar.gz
  2. 使用7zip将.tar.gz解压缩为.tar
  3. 使用7zip将.tar解压缩到安装目录
  4. src.zip将在该安装目录中等待您。
  5. 将其拉出并放在您喜欢的位置。

甲骨文,这真是愚蠢。


3
Oracle JDK8(至少为1.8.60)在Windows上具有src.zip。Eclipse在默认情况下没有选择它。
milletron

@milletron,我在最近的Windows版本中也注意到了它。我感觉一段时间之前,他们的Windows下载图像制作中发生了故障。可能与线路终端黑白(LF)和窗口(CRLF)的差异有关?

这也是我对Java 9所做的
。– Lii

11

我的Ubuntu遇到了这个问题。

我需要做的所有事情来获取Java安装的源代码:

sudo apt-get install sun-java6-source 

在Ubuntu 14.04上:E: Unable to locate package sun-java6-source
Nateowami 2015年

8

我目前在OSX上使用的JDK 1.6 Mountain Lion都没有提供src.zip,据我所知,现在不再有受支持的OSX JDK 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指向相对在少数情况下,您需要查看一些代码以了解某些内容是如何工作的,那么这应该可以解决问题。


1
谢谢,我在使用Mac时需要这个。关于最新的操作系统以及如何获取源代码,似乎没有明确的说明。(他们都谈论不包括源代码下载或不从oracle下载的更新,但是以一种或另一种方式都是模糊或错误的)
dtc 2014年

1
只是想强调这是正确的方法,因为就像@dtc所说的那样,那里的所有其他指令都是错误的或陈旧的。在IntelliJ 15上的Scala项目中做到了这一点,它工作得很好。谢谢@MisterEd!
mjuarez

src.jar不是一个完整的源。例如,它不包含javax.net的源代码
Kannan Ramamoorthy

4

该文件包含在标准JDK下载中。同样,您的Linux系统可能在存储库中包含JDK。在我的Ubuntu Linux文件中位于:/usr/lib/jvm/java-6-sun-1.6.0.20/src.zip


啊哈!您可以张贴为Java VM和JDK安装的哪些软件包。因为我没有那个文件夹。
马丁·考特

4

在JDK 8中,可以在/src.zip中找到源。现在,在某些中间版本中,此zip丢失了,但仍然可用。在此处输入图片说明

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



2

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


1

是!!得到它了!

我从sun.com下载了适用于Linux的Java开发人员工具包(JDK)。里面有src.zip。但是首先我用synaptic卸载了所有Java软件包。


请注意,在Linux下,实际上不需要root用户即可安装Java。我一直(因为十多年了)在Un * x系统上以非root用户身份安装Java(因此,不,我不使用apt-get / synaptic /任何东西)。
SyntaxT3rr0r 2011年

1

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

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

此仓库仍具有sun-java6-source软件包。信用:http : //pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html

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.