我是一段不羁的公告!
记得给艿艿这 3 个项目加油,添加一个 STAR 噢。
https://github.com/YunaiV/SpringBoot-Labs
https://github.com/YunaiV/onemall
https://github.com/YunaiV/ruoyi-vue-pro

精尽 JDK 源码解析 —— 调试环境搭建(一)入门

本文,我们在原来文章 《JDK 源码解析 —— 调试环境搭建》 的基础上,从 JDK11 调整成 JDK13 ,并使用 Git 取代 Mercurial 获取 OpenJDK 的源码。

在艿艿写完 《精尽 JDK 源码解析 —— 调试环境搭建(二)进阶》 之后,艿艿突然发现,从 Git 克隆的是 OpenJDK14 的 EA(Early Access抢 先体验版)。暂时不就纠正,反正胖友要记得,整个系列是基于 OpenJDK14 的 EA 写的。

0. 友情提示

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

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

1. 获取 OpenJDK 源码

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

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

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

拉取完成后,我们可以搜索想看的类。例如说,HashMap 如下图所示:HashMap

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

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

2. 搭建项目调试

① 下载 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 项目,各种创建测试类,各种调试。

666. 彩蛋

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

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

总访客数 && 总访问量