目录
1. 环境
win10,IDEA,JDK8(1.8.0_221)
2. 搭建
2.1 找到JDK1.8的src文件
一般在本地JDK1.8文件夹根目录下,名字叫src.zip,找不到的话可以用everything全局搜一下
2.2 IDEA搭建一个简单java项目
打开IDEA,File->New->Project,什么都不勾选,直接下一步
不用勾选东西,直接next,填一个有意义的项目名,比如jdk8-source
右键项目名,选择Show in Explorer,打开项目所在目录,进入项目,进入src目录
把第一个步骤找到的src.zip复制过来,直接解压到当前目录下,
回到IDEA,稍等一下,src目录下就会出现刚刚解压的内容,右键src,新建一个java class,随便起个名字,就叫App吧,输入main,回车,输入"JDK8源码阅读".sout,回车,然后运行,第一次运行会build很久,然后会爆错误,大概是4个的样子。
3. 解决报错问题
3.1 OOM,内存溢出,资源不足问题
点击File–>Settings–>Build,Execution,Deployment–>Compiler,将Build process heap size(Mbytes)选项加大,默认值是700,调至1200就ok,解决问题1
3.2 找不到UNIXToolkit和FontConfigManager
这是因为在Windows平台下缺少了这2个java类文件所导致的。
这2个类文件可在OpenJDK网站上找到,地址:OpenJDK,打开后点Mercurial,点jdk8u,点jdk,点browse,点src,点solaris,点classes,点sun,可以找到2个文件夹,awt和font,缺少的2个文件分别在这2个文件夹下
按照下图所示目录结构,新建同样名字的目录和空内容的文件
打开openJDK上同样名字的java文件,把对应的内容复制到IDEA,解决问题2,3
3.3 程序包com.sun.tools.javac.*不存在
这是缺少tools的jar包所导致的。
点击File–>Project Structure–>Libraries,手动把jdk8的tools.jar包添加,解决问题4
再次运行main方法,搞定!
4. 完善使用
4.1 配置Ctrl+鼠标左键进入本项目源码文件
点击File->Project Structure->Platform Settings->SDKs->1.8->Sourcepath,点击+,添加项目路径为源代码文件,路径级别到com.sum的上一级就ok,设置完毕后,通过Ctrl+鼠标左键跳转的文件就是本项目源码文件了,可以编辑备注注释等操作。
4.2 解决debug的时候,step into 进不了源码
在App代码里加个HashMap来debug一下
此时如果我们打断点进行单步调试的话,可以发现点击Step Into无法进入源码内部,因为JDK源码是受保护的,无法进入,但是点击Force Step Into是可以进入源码内部的。如果想要直接按F7(即点击Step Into)进入源码内部的话,需要做如下设置:
点击File–>Settings–>Build,Execution,Deployment–>Debugger–>Stepping,取消勾选Do not step into the classes。
4.3 无法编辑注释源代码
如果我们想要对源码文件做记录或者注释时,会发现源码文件是只读的,无法编辑。因为此时项目关联的源码文件还不是刚才复制进项目的文件,而是jdk安装目录下的源码文件。这时候单步调试进去后,手动选择一下源文件就可以了。
4.4 debug的时候,误点Alternative source availble for the class xxxx 的disable
debug的时候不小心点掉了disable,无法切换源文件。
File–>Settings–>Build,Execution,Deployment–>Debugger
over,enjoy!