补充JDK源码-IDEA集成工具

在阅读JDK8源码的时候发现,只有一小部分常用包是存在源码及其注释的,而很多内部包是没有源码,class文件在阅读的时候对阅读者十分不友好。在网上搜集了很多资料都没有解决问题。
解决问题办法:参考文档。本文主要是根据这篇文章记录下解决过程。(本来不想重写一遍,但是网上太多教程根本无法解决这个问题)

一、问题描述

在学习JDK动态代理源码时,发现Proxy是有源码及注释的,文件后缀为java。而在阅读到其又依赖的ProxyGenerator类时发现无法看到其源码注释,文件后缀为class。
补充JDK源码-IDEA集成工具_第1张图片
补充JDK源码-IDEA集成工具_第2张图片
没有源码可给阅读带来了极大的难度,尝试在网上搜索了一些资料,均不能解决问题。
根据参考文档,原因如下:
IDEA展现JDK8的源码路径如下:
补充JDK源码-IDEA集成工具_第3张图片
加压src.zip:
补充JDK源码-IDEA集成工具_第4张图片
从具体内容看,确实没有ProxyGenerator所在的sun包。那如何解决呢?

二、如何解决

① 下载JDK源码

git clone https://github.com/unofficial-openjdk/openjdk.git #克隆至本地

在这里插入图片描述
② 切换目录&分支

cd /${path2jdk}/openjdk  # 切换至jdk目录
git checkout jdk8u/jdk8u  # 切换至jdk8分支

查看分支文件:
补充JDK源码-IDEA集成工具_第5张图片
③ 找到源码文件
我们需要的源码文件在:{path2jdk}/openjdk/jdk/src/share/classes/
补充JDK源码-IDEA集成工具_第6张图片
④ 按需压缩源码文件
这里我仅需要sun包下的源码文件,压缩sun文件夹:
补充JDK源码-IDEA集成工具_第7张图片

将压缩后的sun.zip文件放置在某目录下,如/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home/,并将sun.zip加入到IDEA的sourcePath中:
补充JDK源码-IDEA集成工具_第8张图片

三、结果

问题完美解决:
补充JDK源码-IDEA集成工具_第9张图片
【最后】本文用到的sun.zip已上传至资源(JDK中Sun包下源码zip文件),如果有其他子包需要,可自行下载或联系我上传更多。

你可能感兴趣的:(IDEA,java,intellij-idea)