【JDK源码】(一)源码环境搭建

参考视频:B站 Java源码盘起来!演示搭建JDK源码阅读环境,利用IDEA搭建Java源码阅读环境****
转载文章地址:http://www.komorebishao.com/2020/idea-java-jdk-funyard/

直接Debug查看源码是没有办法添加注释的,而且比较凌乱,所以准备搭建一个项目来专门为源码的阅读提供环境,本来是想自己写一个教程,但是看到视频评论里有很多优质文章,就直接引用了。

在配置时可以按照视频步骤来进行,遇到出现的问题再在文章里找解决方法,毕竟程序员的存在其实就是为了解决问题,要培养解决问题的能力,有些问题也有可能不会遇到,也有可能会遇到文章中不存在的问题,欢迎反馈。

JDK源码阅读系列地址

【JDK源码】(一)源码环境搭建


找到源码位置

在安装JDK的位置找到src.zip和javafx-src.zip,解压

如果忘了,可以在IDEA中找到目录(Projuect Structure)【JDK源码】(一)源码环境搭建

【JDK源码】(一)源码环境搭建

IDEA搭建

第一步:新建项目

打开IDEA,按如下步骤新建一个简单Java项目

create new project

【JDK源码】(一)源码环境搭建

新建一个简单Java项目

【JDK源码】(一)源码环境搭建

【JDK源码】(一)源码环境搭建

【JDK源码】(一)源码环境搭建

点击finish后,项目就创建好了

【JDK源码】(一)源码环境搭建

第二步:添加源码

将之前解压的src.zip复制到工程目录下

【JDK源码】(一)源码环境搭建

第三步:替换JDK关联

为了能够备注以及避免修改到其他项目所使用的内容,添加一个名为“JavaJDK1.8Funyard”的SDK

并将Sourcepath修改为当前项目src下的源码内容

移除Sourcepath中关联的src.zip

【JDK源码】(一)源码环境搭建

将项目中的JDK源码关联到Sourcepath

【JDK源码】(一)源码环境搭建

【JDK源码】(一)源码环境搭建

修改项目使用的JDK为上面新建的

【JDK源码】(一)源码环境搭建

第四步:解决系统资源不足(OutOfMemoryError)

依次点击File–>Settings–>Build,Execution,Deployment–>Compiler

堆大小可由原来的700改为1700

【JDK源码】(一)源码环境搭建

第五步:解决com.sun.tools.javac.api不存在

将jdk安装目录下(不是自己新建的这个源码阅读工程)lib包添加到项目中

依然是Projuect Structure

【JDK源码】(一)源码环境搭建

【JDK源码】(一)源码环境搭建

点击ok,完成

【JDK源码】(一)源码环境搭建

第六步:解决找不到sun.awt.UNIXToolkit和sun.font.FontConfigManager

PS:这个问题我没有遇到,小伙伴们按需配置

在项目中新建sun.awt包和sun.font包,分别新建UNIXToolkit.java和FontConfigManager.java

【JDK源码】(一)源码环境搭建

到> OpenJDK寻找sun.awt.UNIXToolkitsun.font.FontConfigManager的源码,分别复制到上面新建的两个类里

【JDK源码】(一)源码环境搭建

选择对应版本jdk

【JDK源码】(一)源码环境搭建

【JDK源码】(一)源码环境搭建

寻找UNIXToolkit类

【JDK源码】(一)源码环境搭建

【JDK源码】(一)源码环境搭建

进入到 /src/solaris/classes/sun/awt/目录,找到UNIXToolkit

【JDK源码】(一)源码环境搭建

FontConfigManager也是一样,路径:src/solaris/classes/sun/font/FontConfigManager.java

复制进去之后可以看到还是有错误的地方,这时候就要进行清理idea缓存然后重启:

点击左上角File->Invalidate Caches/Restart…

【JDK源码】(一)源码环境搭建

重启之后就可以顺利运行啦(上面新建的类中可能还会报error,但是对使用没有影响)