引言
之前在阅读JDK源码时,我们通常都是直接打开的引入JDK包下的类进行学习的,可是这里面的类文件我们是无法做修改,没有办法直接写我们自己的注释到上面,笔记记录非常麻烦。因此我们可以搭建自己的源码环境,在后续阅读过程中可以直接对类文件做修改,也方便我们回顾和复习。
搭建环境
一.解压源码压缩包
首先找到我们JDK的安装目录,本人当初安装JDK时候使用的安装版并且装在了默认路径下。所以我的安装目录在 C:\Program Files\Java\jdk1.8.0_181 解压之前,我们先在IDEA里面新建一个项目,我这里建的是一个Maven项目
把jdk目录下的src.zip 解压到我们自己的项目里面
解压完成后,在IDEA里面我们可以看到目录结构是这样的
二.编译项目
直接构建即可 啊哦,报错了
Error:(27, 15) java: 找不到符号 符号: 类 UNIXToolkit 位置: 程序包 sun.awt
Error:(33, 16) java: 找不到符号 符号: 类 FontConfigManager 位置: 程序包 sun.font
Error:(40, 31) java: 程序包com.sun.tools.javac.api不存在 其中,Error:(40, 31) java: 程序包com.sun.tools.javac.api不存在,这个只要引入一下Jdk目录下lib包下的tools包即可。
右键项目根目录打开模块管理
点击OK即可,可以看到这个报错就没了
然后另外两个报错是因为Windows环境下缺少了两个文件导致的,我们需要自己去OpenJDK网站下载 OpenJDK
进入网站之后,在左侧找到Mercurial
然后找到jdk8u
然后找到jdk8u -> jdk
然后最左侧找到browse
然后打开 src -> solaris -> classes -> sun ,就可以看到两个目录: awt 和font
分别点进去找到这两个文件 UNIXToolkit.java FontConfigManager.java
打开之后把里面的内容拷贝出来放到自己建的一个文件中
回到我们的IDEA项目中,在java路径下新增sun.awt包和sun.font包,把上面那两个文件放进去
重新编译一下,发现又报错了,系统资源不足 Error:java: OutOfMemoryError: insufficient memory 提示内存不足,我们加大一下内存,点击左上角 File | Settings | Build, Execution, Deployment | Compiler
这里默认是700,我们调到1024,再次编译一下
OK,环境搭建完毕
最后
最后我把这个项目初始化化成了Git项目,方便自己去记录学习历史,复习时候可以根据Git的提交历史,找到思路