我的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源代码?
答案 0 :(得分:5)
如果您使用的是Linux,则可以在OpenJDK Project找到更完整的源代码存档。但是在macOS和其他可能的平台上,这是一个对我有用的方法:
git clone https://github.com/openjdk-mirror/jdk.git
cd jdk
git checkout jdk8u/jdk8u/master # For Java 8
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,但现在它应该能够找到以前缺少的源代码。