利用IDEA搭建JDK1.8源码阅读调试环境

1.编译器以及Jdk版本

1.java环境:jdk1.8.0_231

2.IDEA版本:IntelliJ IDEA Community Edition 2019.3.3 x64

2.搭建过程

首先新建一个简单的java项目

点击next

继续next

输入project的名字,完成项目创建。

    在src下创建两个包的source 和 test,source中用于存放jdk的源码,test中用于创建测试方法方便通过debug进入到jdk源码中,查看和学习jdk的源码

找到jdk的目录所在地,将src压缩包cp出来并且解压src目录

得到上图所示的目录,并且将src中的所有的目录都copy到项目中的source的目录下

ps:最好是直接在系统文件目录下copy,不要直接copy到编译器中的目录下。

点击project structure进入到下图中的界面

确定jdk版本,ps:我的版本是jdk1.8

接下来新添加一个jdk

修改SourcePath将src.zip删除,重新添加项目中的source

添加本地项目中的src中解压的文件夹所在地址

打开setting设置

取消勾选,主要是为了防止debug时无法读取到jdk源码问题,以及之后可以在源码中加入自己的理解以及注释。

修改size的大小,主要是为了防止build时系统资源不足(OutOfMemoryError)的问题出现

进行程序测试,利用debug测试能否进入到源码中

3.出现的问题

ps:如果出现OutOfMemoryError的问题就是前面修改build process heap size时未修改 或者 修改的值比较小的原因

a.出现程序包UNIXToolkit或者FontConfigManager不存在时

如下图所示:

打开OpenJDK的页面选择Mercurial

找到UNIXToolkit.java的所在地,因为我的jdk版本是jdk1.8.0_231,所以选择了jkd8u的项目

选择jdk8u对应的jdk

选择browse,进入目录

之后文件目录下的地址为/src/solaris/classes/sun/awt/,找到UNIXToolkit.java,如法炮制,找到FontConfigManager.java,其地址为/src/solaris/classes/sun/font/。

在项目中source目录下新建一个包sun.awt和sun.font将UNIXToolkit.java中的内容复制到sun.awt中的UNIXToolkit中,

将/src/solaris/classes/sun/font/FontConfigManager.java的内容复制到sun.font中的FontConfigManager中。

ps:不用修改原来代码中的包路径。

重启IDEA或者File->Invalidate Caches/Restart…,之后运行测试代码。

b.出现com.sun.tools.javac不存在

打开project structure,进入到此页面,添加lib,选择好本地的jdk目录下的lib文件。

选择完成后,应用并确定,之后重启IDEA或者File->Invalidate Caches/Restart…

最后就可以快乐的F7 F7 F7 F7 F7 F7...。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章