调试JDK源码时可编辑操作的实现
以下操作在以下环境中测试通过:idea 2019.3,jdk8源码包
一、解压源码压缩包
从jdk安装目录中找到 src.zip
的源码压缩包,解压后得到源码文件夹
二、创建Java项目
因主要目的是调试源码,了解其功能的实现过程,所以在IDEA中创建一个java项目(单独的一个项目,而不是Module),在 src
文件夹下分别创建两个文件夹(文件夹名自定义)resource
和 test
-
resource:存储需要进行调试的源码文件
-
test:测试类所在文件夹
三、复制源码文件到文件夹
将需要调试的源码类所在包复制或移动到所创建项目的 resource
目录中
因为将全部的源码文件夹放到项目的 resource
目录中,运行程序时在构建程序阶段会报错,且构建时间过长(最终构建失败,程序结束),极大的浪费计算机内存以及CPU资源,所以强烈建议仅将需要调试的类所在包放到目录中
比如想调试HashMap类,就将
java.util
包放到resource
目录中
报错情况:
四、Platform Settings中新增一个SDK
避免出现在源码中增加注释时不小心对源码进行了改动(而idea又是自动保存的),所以区别于其他项目,在 Project Structure -> Platfrom Settings -> SDKs
中新增一个SDK,专门用于jdk源码调试的项目中
五、修改新建SDK的 Sourcepath 配置
源码文件路径指向到步骤3中保存源码文件的 resource
目录中
修改后(将原有的两项移除):
六、修改 Project 以及 Modules 的 SDK
-
Project Settings -> Project
中为项目更换SDK -
Project Settings -> Modules
中为Module更换SDK
七、项目结构图
resource目录中具体放哪些源码文件可自行选择
八、测试调试过程中对源码进入注释
修改完设置后一定要Apply,保存设置,否则修改不生效
调试源码过程中,如需增加注释,尽量不要改变原有行数,加注释在源码后加
JDK源码包的学习步骤推荐(java包下):lang,util,io,nio,time,math,net