IDEA搭建JDK1.8源码调试环境

下载源码

安装好JDK后,源码目录下面有src.zip文件,这个文件就是JDK的源码

搭建调试环境

新建Maven工程,包含以下文件

  • source:源码文件夹(手动新建)
  • test:单元测试文件夹(手动新建)
  • Main.java:主函数(自带)

将src.zip文件内容解压至source文件夹内,也可以只复制src.zip/java文件夹,其他不重要

主要看以下文件夹内的源码,是JDK源码里面比较重要的,而且平时开发也经常用到

  • java.io
  • java.lang
  • java.math
  • java.net
  • java.nio
  • java.time
  • java.util

在test文件夹内新建hashmap/HashMapTest.java,文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
package com.jonssonyan.test.hashmap;

import java.util.HashMap;

public class HashMapTest {
public static void main(String[] args) {
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("1", "1");
hashMap.put("2", "2");
hashMap.put("3", "3");
System.out.println(hashMap);
}
}

以上是一个简单的HashMap put元素的方法,此时如何开启调试进入到的是本机的JDK源码(JDK里面的源码是锁住不让编辑的),而不是我们自己复制出来的source/java文件夹内的源码,我们需要将断点进入到我们自己的source/java文件夹内的源码,这样我们就可以写一些注释来做笔记

找到设置,Project Structure -> SDKs -> Sourcepath,删除掉xxxx/src.zip,点击+,添加为我们新建的source文件夹

找到设置,Build, Execution, Deployment -> Compiler -> Shared build process heap size (Mbytes) ,默认值为700,我们将它设置为1700

找到设置,Build, Execution, Deployment -> Debugger -> Stepping -> Do not step into the classes,将勾选取消

开启调试,这样就可以了(第一次编译时间比较长,稍作等待)

常见问题

  • F7进入到下层Debug,F8同层Debug

  • 如果source文件夹内有报错,除了source/java文件夹其他都可以直接删掉,就不会报错了