JDK1.8 源代码阅读环境搭建
Contents
一、准备
Itellj IDEA, jdk1.8 的源代码包(解压 jdk 目录下的 src.zip 包得到)
二、项目结构
IDEA 创建一个普通的 java 项目 把解压得到的 jdk1.8 的源代码复制到 source 目录下: test 目录用来写测试用例, 这里用不到 Main 方法。
三、IDEA 设置
- Project Structure -> Project 设置项目的 SDK (jdk8u221),language level 选择
8 - Lambdas, type annotations etc.
- Project Structure -> Dependencies 选择 Modules,SDK 选择 1.8_221
- 设置平台的 SDK 源代码路径为自己项目的 source 目录
- 调整编译线程的堆大小,避免内存不足,编译无法通过,调整到 1G 以上。
- IDEA 默认调试是不会进入到 jdk 的源代码的,在 Debugger 设置中允许进入到 jdk 的包 到这里,我们完成了 idea 的设置,可以开始写个测试程序编译运行。
四、编译调式
创建一个测试类进行调试:
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
Map<String, Double> hashMap = new HashMap<>();
hashMap.put("k1", 0.1);
hashMap.put("k2", 0.2);
hashMap.put("k3", 0.3);
hashMap.put("k4", 0.4);
}
}
进入 debug 之后,就可以在源代码里写一些笔记了。
五、编译问题
经常碰到的几个问题:
- 缺少com.sun.tools包
- 缺少sun.awt.UNIXToolkit 和 sun.font.FontConfigManager这两个类
解决办法可以参考这篇博客:JDK1.8源码分析03之idea搭建源码阅读环境