构建 openjdk11源码阅读环境

2,073 阅读2分钟

[toc]

前言:

  • jdk版本:openjdk 11
  • 编辑器:idea 2019.1.2
  • 电脑:Mac OS

1.创建新项目

用 idea 创建一个简单的 Java 项目,名字随便取。

顶部栏 File -> New -> Project..

image-20210120150014452

image-20210120150137093

2.找到对应 JDK 的源码压缩包

使用命令,找到 JDK 目录。

java -verbose

展示结果很长~,看第一条的红线部分,是关键目录。

/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/lib

image-20210120150414595

打开 Finder ,使用 Command + Shift + G 出现“前往文件夹”(或顶部栏 -> 前往 -> 前往文件夹)。

输入上述的目录地址,回车。

image-20210120150800090

image-20210120150845180

image-20210120150905360

src.zip 就是我们要找的源码压缩包。

PS:还有一种简单的方法,通过已有项目的 Project Structure。

选择 SDKs,找到对应的SDK版本,点击 Sourcepath,所展示就是源码位置。

image-20210120151134605

3.解压 src.zip 到项目目录下

复制 src.zip 到项目下,解压到你想要的目录下。我的是src/jdk11/。

image-20210120151425068

如此,就可以愉快看源码了。而且可以自己写注释。

image-20210120151521358

4.如何调试时,查看自己注释的代码,或同时进行注释

以上步骤,只能满足静态地看看源码,写写注释。

如果你想进行调试时,看到自己标注的注释,或边调试边注释,那么还需要一点工作。

一般调试时,源码来自于 src.zip,编辑器的tab是带锁的,无法编辑。

4.1 调试时允许 step into

JDk 源码是受保护的,无法直接通过 F7 (step into),可以通过 alt+shift+F7 (force step into)。

取消以下限制,就可以直接通过 F7 进入源码了。

image-20210120152728221

4.2 关联当前项目可编辑的源码。

Project Structure -> SDKs 下 新建SDK,选择原来的JDK 11。名字设置为 11 src。

image-20210120153239047

image-20210120153306853

将11 src 的源码关联目录删掉,改为当前项目的目录。

image-20210120153747364

image-20210120153918031

image-20210120154017226

最后全部 OK即可。

之后将项目的 JDK 设置为 11 src。

image-20210120154946309

image-20210120155007632

5.调试

image-20210120154703419

6.其他问题

6.1 编译 OOM

增加IDEA编译所需堆内存,默认700,这里设置为1024。

image-20210120154824770

6.2 创建的项目使用了 版本管理工具,调试时运行失败

如果创建的项目使用了 Maven 或者 Gradle 这样的版本管理工具,编译或者运行测试时失败或报 Class Not Find。

需要再设置一下他们的 JDK 版本。

image-20210120155321369

6.3 jdk源码写过注释后debug提示source code does not match the bytecode

我还没遇到过,参考 blog.csdn.net/u010999809/…

6.4 上传到 github

因为用的公司电脑,不想设置 github access token。

可以利用 Idea 设置项目的github token,快捷使用。

image-20210120160203168

image-20210120160235065

image-20210120160325655

设置完 github 账号以后,就可以通过 git 命令进行了。

或者通过用户界面操作。