项目
博客
文档
归档
资源链接
关于我
项目
博客
文档
归档
资源链接
关于我
JDK 源码解析 —— 调试环境搭建(一)入门
2020-11-10
·
芋道源码
·
转载
·
·
本文共 391个字,预计阅读需要 2分钟。
> `转载`于【[芋道源码](http://svip.iocoder.cn/)】 本文,我们在原来文章 [《JDK 源码解析 —— 调试环境搭建》](http://vip.iocoder.cn/JDK/build-debugging-environment/?self) 的基础上,从 JDK11 调整成 JDK13 ,并使用 Git 取代 Mercurial 获取 OpenJDK 的源码。 在艿艿写完 [《精尽 JDK 源码解析 —— 调试环境搭建(二)进阶》](http://svip.iocoder.cn/JDK/build-debugging-environment-more?self) 之后,艿艿突然发现,从 Git 克隆的是 OpenJDK14 的 EA(Early Access抢 先体验版)。暂时不就纠正,反正胖友要记得,整个系列是基于 **OpenJDK14 的 EA** 写的。 ## 0. 友情提示 JDK 源码的调试环境,实际上暂时没有特别好的方案。 因为,我们程序运行以来 JDK ,但是我们如果在 JDK 上增加源码相关的注释,就会导致代码行数的错乱。所以,目前的想法是,如下两个步骤: - 1、从官方的 Mercurial 获取 OpenJDK 源码,在上面添加源码注释。 > 获取 OpenJDK 源码的方式,一共有三种 > > - 1、从 http://jdk.java.net/ 网站上,直接下载源码。 > - 2、使用 Mercurial ,从 http://hg.openjdk.java.net/jdk/ 克隆对应版本的源码。例如说,我们在 [《JDK 源码解析 —— 调试环境搭建》](http://vip.iocoder.cn/JDK/build-debugging-environment/?self) 文章中,就是这么干的。 > - 3、使用 Git ,从 https://github.com/openjdk/jdk克隆对应版本的源码。该仓库就是 http://hg.openjdk.java.net/jdk/ 的镜像,方便我们使用我们所熟悉的 Git 而不是 Mercurial 。在本文,我们就会从该仓库克隆。 - 2、自己搭建一个项目,使用 JDK13 ,然后进行调试。 ## 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](http://static.iocoder.cn/images/JDK/2019_01_01/01.jpg)](http://static.iocoder.cn/images/JDK/2019_01_01/01.jpg)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 源码」](http://svip.iocoder.cn/JDK/build-debugging-environment/#) 中下载的是 OpenJDK 的源码,但是我们使用 Oracle JDK13 作为调试环境,也是没啥问题的。因为,Oracle JDK 和 OpenJDK 绝大部分源码是相同的。 > 如果想要纯粹以 OpenJDK 作为调试环境,可以参考 [《Mac 上的 JDK 多版本管理》](https://www.jishuwen.com/d/pm5V/zh-hk) 文章,使用 brew 安装对应版本的 OpenJDK 。 ② 搭建项目 这个比较简单,就不重复赘述了。**需要注意的是,设置 Project SDK 要是 Oracle JDK13 噢**。 还有一个注意点,IDEA 需要升级到 2019.2 或以上版本,因为 2019.2 才支持 JDK13 。 > 友情提示:当然,胖友如果自己有精力,可以将**克隆的** OpenJDK13 **编译**出来,作为项目使用的 Project SDK 。 ③ 调试 直接调试,这个无需多说列。 例如说,艿艿就在 https://github.com/YunaiV/openjdk 项目下,创建了一个叫 `yunai` 的 Maven 项目,各种创建测试类,各种调试。