前言
JDK源码阅读是一个慢慢积累的过程,俗话说好脑袋不如烂笔头,所以当我们着手阅读源码的时候一定要做好笔记,不然过一段时间再次复习之前读过的源码也会一脸懵逼,感觉如此的陌生。
那么笔记如何打呢?当然是搭建一套源码阅读环境,边读边写注释,下面就给大家介绍一下如何通过IDEA去搭建一套JDK源码阅读环境。
搭建步骤
1.找到JDK源码的压缩包并解压
找到JDK的安装路径,例如我的安装路径是C:\Program Files\Java\jdk1.8.0_91,在该安装路径下有src.zip,这个就是jdk源码的压缩包,把这个压缩包进行解压。
2.IDEA新建java工程
具体流程:File -> new -> project -> java
然后在工程里新建一个test包,与src平级,方便后期调试JDK源码。下面就是我创建好的一个jdk源码学习工程
3.源码加入工程中
将我们第一步解压的源码复制到新建的java工程中(这里可以直接找到java工程src所在的位置,把源码直接复制进去),如下所示
此时刷新工程,就会出现如下的工程结构
4.调试
1).解决找不到sun.awt.UNIXToolkit和sun.font.FontConfigManager的问题
在新建的test包下随便新建一个test类,在里面随便写一段测试代码并运行,就会发现刚才复制进去的JDK源码开始进行编译了。这时候会报以下错误
这时候我们在项目中新建sun.awt包和sun.font包,然后分别新建UNIXToolkit.java和FontConfigManager.java两个类,类里的内容可以到openJDK官网去找。
选择源码对应的jdk版本
从classes里面找到我们缺少的.java文件复制到源码包里即可
2).解决com.sun.tools.javac.api不存在的问题
File -> Project Strucure -> Libraries ->把jdk安装路径下的lib添加进去。
3).解决OOM问题
依次点击File–>Settings–>Build,Execution,Deployment–>Compiler
堆大小可由原来的700改为1700
5.添加注释
此时我们的源码工程编译应该都没问题了,但是当我们去给源码写备注的时候,提示我们readOnly,这是因为我们的项目还是关联的src.zip这时候我们可以新建一个SDK,然后把新的SDK中Sourcepath关联的src.zip去掉,换上我们创建的项目的src路径
这时候就可以愉快的在源码中写备注了
注意:
这种添加注释的方式不要改变原来代码的行号,不然会导致source code not match the bytecode