本文,我们在原来文章 《JDK 源码解析 —— 调试环境搭建》 的基础上,从 JDK11 调整成 JDK13 ,并使用 Git 取代 Mercurial 获取 OpenJDK 的源码。 在艿艿写完 《精尽 JDK 源码解析 —— 调试环境搭建(二)进阶》 之后,艿艿突然发现,从 Git 克隆的是 OpenJDK14 的 EA(Early Access 抢 先体验版)。暂时不就纠正,反正胖友要记得,整个系列是基于 OpenJDK14 的 EA 写的。

    JDK 源码的调试环境,实际上暂时没有特别好的方案。

    因为,我们程序运行以来 JDK ,但是我们如果在 JDK 上增加源码相关的注释,就会导致代码行数的错乱。所以,艿艿目前的想法是,如下两个步骤:

    • 2、自己搭建一个项目,使用 JDK13 ,然后进行调试。

    从官方仓库 https://github.com/openjdk/jdk Fork 出属于自己的仓库。为什么要 Fork ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。😈

    使用 IntelliJ IDEA 从 Fork 出来的仓库拉取代码。因为 JDK 的源码比较大,所以拉取会花费漫长时间,耐心等待下。

    如果拉取比较慢,也可以考虑使用 https://gitee.com/zhijiantianya/jdk 地址。这个是艿艿使用 Gitee 对 https://github.com/openjdk/jdk 做的镜像。毕竟,Github 对国内的网络,不是非常友好。

    拉取完成后,我们可以搜索想看的类。例如说,HashMap 如下图所示:精尽 JDK 源码解析 —— 调试环境搭建(一)入门 - 图1
    HashMap

    如此,我们就可以愉快的在其上添加源码注释。

    可能胖友导入在 IDEA 看到的项目结构比较奇怪。可以先 IDEA 关闭 OpenJDK 项目,然后删除项目本地根目录下面 IDEA 相关的配置,最后再使用 IDEA 打开 OpenJDK 项目。

    ① 下载 JDK

    https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html 上,下载 Oracle JDK13 。

    虽然说,我们在 「1. 获取 OpenJDK 源码」 中下载的是 OpenJDK 的源码,但是我们使用 Oracle JDK13 作为调试环境,也是没啥问题的。因为,Oracle JDK 和 OpenJDK 绝大部分源码是相同的。

    如果想要纯粹以 OpenJDK 作为调试环境,可以参考 《Mac 上的 JDK 多版本管理》 文章,使用 brew 安装对应版本的 OpenJDK 。

    ② 搭建项目

    这个比较简单,就不重复赘述了。需要注意的是,设置 Project SDK 要是 Oracle JDK13 噢

    还有一个注意点,IDEA 需要升级到 2019.2 或以上版本,因为 2019.2 才支持 JDK13 。

    友情提示:当然,胖友如果自己有精力,可以将克隆的 OpenJDK13 编译出来,作为项目使用的 Project SDK 。

    ③ 调试

    直接调试,这个无需多说列。

    例如说,艿艿就在 https://github.com/YunaiV/openjdk 项目下,创建了一个叫 yunai 的 Maven 项目,各种创建测试类,各种调试。

    2019 年的下半年,艿艿准备写写大家比较常用的 JDK 类的源码解析,希望对胖友有一些帮助。共勉,2019 ,加油!

    当然,可能会有胖友会有疑惑,目前 JDK8 版本才是主流,而艿艿为什么使用 JDK13 呢?虽然说,Oracle JDK8 某个版本(具体不太记得了)之后,需要更新,但是我们最终还是会不断更新版本。Java 的强大,不是因为 Oracle ,而是完善的整个社区体系。
    http://svip.iocoder.cn/JDK/build-debugging-environment/