⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 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. 彩蛋