作者:我的菜菜呀 | 来源:互联网 | 2023-02-11 14:56
我的IDE非常适合为JDK类找到相应的Java源代码。例如,我可以java.lang.String
在IDE中打开并查看实际的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> Cory Klein..:
如果您使用的是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,但是现在它应该能够找到以前缺少的源代码。