《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》

摘要: 原创出处 http://www.iocoder.cn/JDK/build-debugging-environment/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

0. 友情提示

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

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

  • 1、从官方的 Mercurial 获取 OpenJDK 源码,在上面添加源码注释。
  • 2、自己搭建一个项目,使用 JDK11 ,然后进行调试。

1. 获取 OpenJDK 源码

艿艿:因为这小节是以 Mac 为操作环境,胖友可以找下 Windows 为操作环境。

或者,直接使用艿艿提供了 Github 地址 https://github.com/YunaiV/openjdk ,无需操作。

① 因为官方的 OpenJDK 源码在 Mercurial 中,所以需要安装 Mercurial 。以 Mac 环境为示例:

brew install mercurial

② 安装完毕之后,拉取 OpenJDK11 源码。因为目前是 JDK11 版本是长期有效版本,所以当然是拉取他。操作命令如下:

hg clone http://hg.openjdk.java.net/jdk/jdk11/

③ 因为 OpenJDK 涉及的代码很多,我们可以导入到 IDEA 中,然后索索我们想看的类。例如说,HashMap 如下图所示:

HashMap

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

2. 搭建项目调试

① 下载 JDK

https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html 上,下载 Oracle JDK11 。

虽然说,我们在 「1. 获取 OpenJDK 源码」 中下载的是 OpenJDK 的源码,但是我们使用 Oracle JDK11 作为调试环境,也是没啥问题的。

② 搭建项目

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

艿艿:当然,胖友如果自己有精力,可以使用 OpenJDK11 编译出来,作为项目使用的 Project SDK 。

③ 调试

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

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

666. 彩蛋

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

共勉,2019 ,加油!

知识星球

文章目录
  1. 1. 0. 友情提示
  2. 2. 1. 获取 OpenJDK 源码
  3. 3. 2. 搭建项目调试
  4. 4. 666. 彩蛋