在IntelliJ或其他IDE中获取完整的JDK源代码

时间:2017-02-17 21:27:45

标签: java eclipse intellij-idea

我的IDE非常适合为JDK类找到相应的Java源代码。例如,我可以在IDE中打开java.lang.String并查看实际的Java源代码。但是,当我尝试打开sun.net.www.http.HttpClient(包含在Java SDK中)时,我的IDE只显示了反编译的.class文件,该文件难以阅读。

我在macOS上的IDE正在寻找/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/src.zip中的源代码,如果我解压缩该档案,我可以找到String.java,但HttpClient.java无处可寻。所以我的IDE无法找到它。

我在哪里可以获得完整的JDK源代码?

1 个答案:

答案 0 :(得分:5)

如果您使用的是Linux,则可以在OpenJDK Project找到更完整的源代码存档。但是在macOS和其他可能的平台上,这是一个对我有用的方法:

从Github下载完整的Java源代码

git clone https://github.com/openjdk-mirror/jdk.git
cd jdk
git checkout jdk8u/jdk8u/master    # For Java 8

找到您对

感兴趣的Java包
find . -name HttpClient.java       # Or whatever class you want
./src/share/classes/sun/net/www/http/HttpClient.java

在这里,您可以看到sun.net.www.http.HttpClient包含在sun包中,该包位于src/share/classes目录中。

使用其中的包

创建一个新的源存档
mkdir ~/java
# Replace path below with location of JDK on your machine
unzip /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/src.zip -d ~/java
cp -r ./src/share/classes/sun ~/java

重建存档并将其放回

cd ~/java
zip -r src.zip *
cp src.zip /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/src.zip

您可能需要重新启动IDE,但现在它应该能够找到以前缺少的源代码。