搭建JDK源码阅读环境问题总结

为了搞 JDK 源码阅读环境,费劲周折,遇到各种问题。现在来最后总结。

参考

利用IDEA搭建JDK源码阅读环境教程(手动创建版) - 知乎

idea中搭建jdk1.8源码阅读环境_罗小树的博客-CSDN博客

  1. 新建项目 jdk-src-learning
  2. 在安装JDK的位置找到src.zip,解压src.zip放到新建好的项目的src目录下
    在这里插入图片描述
  3. 在Project Structure->SDKs中,把 1.8 复制一份 my-jdk-1.8,在Sourcepath中把src.zip换成当前目录下的 src,这样在代码调试时能自动关联上源码
    在这里插入图片描述
  4. 在 IDEA,Project Structure->Libraries 中添加 jdk 目录下的 lib,解决编译时会提示com.sun.tools下的一堆类找不到的问题
    在这里插入图片描述
  5. 手动添加 sun.awt.UNIXToolkitsun.font.FontConfigManager 这两个类(点进去是官方源码链接)
  6. idea 里 File->Settings->Compiler->Build process heap size调大一点,改成 2048,解决编译时报内存不足,或者编译过程一直停留在 writing class 的问题
    在这里插入图片描述
  7. 在 IDEA 设置中,取消这个勾,这样才能点进JDK源码在这里插入图片描述
  8. 项目根目录下创建一个 test 目录,再在里面添加 com.myjdk.list.TestArrayList 类,加上几行测试代码,运行,就可以顺利运行了。
    public static void main(String[] args) {
        // 研究 ArrayList 基础属性、构造方法、get 方法、set 方法、add 方法、remove 方法、扩容方法
        List<Integer> integerList = new ArrayList<>();
        integerList.add(20);
        integerList.add(30);
        System.out.println(integerList);
    }

在这里插入图片描述在这里插入图片描述

换行注释 debug 错行的问题

之后在这里的源码中换行注释,打断点 debug 会出现错行的问题,并且无法显示局部变量,提示 source code does not match bytecode。

这个问题卡了一天。

通过重新编译JDK源码解决换行注释debug错行问题

上面这个可以解决换行注释问题,但是重新编译 JDK 有点太复杂了,尤其在我电脑 Windows 环境下

将源码编译添加至 jre/endorsed/rt_debug.jar下解决换行注释debug错行问题

上面这个可以更简单地解决换行注释问题,不过需要注意,执行完当中的脚本以后,要记得把这个包添加到 IDEA 的 SDKs -> classPath 中,
在这里插入图片描述
于是在JDK源码上写换行注释,debug 打断点终于是成功对上行号并且显示局部变量表了
在这里插入图片描述
之后关于如何研究源码的问题,可以稍微看看这个文章

《大牛到底是如何阅读JDK源码的?》一起来学习一下_ITPUB博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值