深入理解Java系列 | 如何搭建JDK源码阅读环境

1,544 阅读3分钟

本文已参与掘金创作者训练营第三期「高产更文」赛道,详情查看:掘力计划|创作者训练营第三期正在进行,「写」出个人影响力

Hi 大家好,我是 毛与帆,一个热爱技术的后端工程师,感谢你的关注!

从本文开始,我将会跟大家一起回顾Java中的重点知识点,也就是深入理解Java系列,在这个系列中将会带来一系列重点类库的使用、原理分析等内容。

本文我先介绍一下如何搭建JDK的源码阅读环境,以便更好阅读源码,理解底层的原理,现在开始吧!

1. 创建项目

首先,我们需要在IDEA中创建一个Java项目,在IDEA中选择:File - new - project,创建一个新的项目,如下图所示,然后一路next完成项目创建即可。

在这里,我使用的是java8的源码。

image-20210724212801634.png

这时候,我们在项目的src目录下,分别创建两个包javatest,用来存放java源码以及我们自己的测试代码。如下图所示:

image-20210724213313964.png

2. 添加Java源码

其实Java的源码获取也非常简单,我们找到自己的jdk安装的路径,在目录下,有一个src.zip压缩文件,这个文件里面就是所有的java源码,如下图所示。

image-20210724213455934.png

我们将该文件解压到刚才创建的java目录下,如下:

image-20210724214007235.png

3. 几个小配置

3.1 源码文件路径配置

首先,进入到Project Structure设置里面,如下所示

image-20210724214034085.png

然后进入SDKs的配置中,新创建一个java1.8的sdk,点击Sourcepath,这里配置的是java源码地址,我们需要将该压缩文件删掉,然后设置为解压后的目录

image-20210724214925867.png

设置为新的目录:

image-20210724215005934.png

然后,在Classpath配置中,添加jdk目录下lib/tools.jar文件

image-20210724220624016.png

然后,在Project的配置中,Project SDK选择刚创建的1.8-src

image-20210724215055121.png

3.2 堆大小设置

image-20210724215909362.png

3.3 单步调试设置

由于IDEA限制了单步调试,无法进入java的源码,所以需要修改如下Debugger - Stepping配置,Do not step into the classes选项设置为不勾选

image-20210724215643081.png

4. 单元测试

这时候,在test目录下,创建一个测试类,如下:点击ArrayList,则可以正常跳转到源码文件,而且,该文件是可以修改的,可以在上面添加注释等

image-20210724215432316.png

image-20210724215419048.png

然后可以点击编译运行,在编译运行时,会出现com.sun.java.swing目录下缺失依赖包UNIXToolkit的错误,可以选择将com.sun.java.swing包从项目中删除的方式解决该问题(swing包下的代码暂时不影响我们源码分析,可以暂时移除;也可以手动添加缺失的几个文件,大家可以自行搜索相关资料解决)。

java: 找不到符号
  符号:   类 UNIXToolkit
  位置: 程序包 sun.awt

5. 最后

OK,到此项目搭建完成了,我们可以愉快的阅读JDK的源码。


我是 毛与帆 ,感谢各位朋友的点赞、评论和关注,我们下期见