sunfulv

如何将jdk12的源码导入idea中

首先,在idea中新建一个java工程

新建一个java项目

接着,在本地找到jdk所在的文件目录,进入jdk目录,找到javasrc目录或者一个src.zip的压缩包,

在向下或者解压压缩包,找到java.base目录,这里面的java目录,就是我们要找的java最基本的源码了,我们主要就是阅读这部分源码

复制源码

将java.base下的java目录复制到我们之前新建的java工程的src目录下

代码导入

为了方便对源码进行调试,我们在src下面创建一个test目录,存放我们写的调试代码

image-20211019225620922

为了能够调试源码,我们还需要对项目进行一些设置

打开idea的File菜单下的Project Structure,Modules, Sources,

将src从Source Folders中去掉

image-20211019230105821

将我们之前创建的test目录加入到Source Folders中,具体操作,选中test目录,点击上方的Sources就能看到test目录加入到右侧的Source Folders中了

image-20211019230302543

然后对Platform Settings 下的SDKs进行设置,将SourcePath设置为我们之前导入项目的源码目录,

将导入的源码添加到项目设置-Platform-setting-SDKs-Sourcepath中

并删掉SourcePath下的其他路径

image-20211019230655012

点击OK保存修改。

最后我们就可以在test目录下编写调试代码,进行调试。

在调试前,我们先打开idea的settings,找到stepping设置选项(可以直接在settings中搜索找到)

将Do not step into the classes前面的对号去掉,这样我们在调试的时候就能单步进入源码中了

image-20211019231534453

接下来我们进行调试,这里以HashMap的调试作为例子

我们在test目录下新建了一个HashMap调试类,然后在main方法中写一下简单的调试语句,进行调试

image-20211019231725711

这里我们就能从断点位置单步进入到HashMap的源码中(这里可能会先进入Integer类的源码中)

image-20211019231452883

相关文章: