JDK1.8版本号:jdk1.8.0_202
一、找到源码位置
其实我们在安装JDK完时就源码就已经存在,所有要找到JDK所安装的目录,会看到src.zip、javafx-src.zip的压缩包,这里面就是JDK的源码,例如下图:
二、Intellij IDEA搭建源码阅读环境
1、Intellij IDEA新建java项目
打开Intellij IDEA,菜单栏File > Project,新建简单java项目,例如下图:
在点Next, 填写项目名称和保存项目目录,例如下图:
点击finish后,项目监理完成,例如下图:
2、把源码src.zip解压到该工程下的src目录下,并新建Main类
例如下图:
3、将原来关联的jdk安装目录下的源码src.zip替换成jdk1.8.0_202-source-analysis的src
为了避免修改原来的SDKs,另外再添加一个名为“jdk1.8.0_202-source-analysis”的jdk,并移除src.zip
File ->Project Structure->Platform Settings ->SDKs
将jdk源码项目src添加到sourcepath中
修改项目(jdk1.8.0_202-source-analysis)使用的jdk为新建的“jdk1.8.0_202-source-analysis” jdk
三、运行Main类的main方法
如果运行不成功,会出现以下错误提示:
Error:java: OutOfMemoryError: insufficient memory(系统资源不足)
程序包com.sun.tools.javac.api不存在
找不到sun.awt.UNIXToolkit
找不到sun.font.FontConfigManager
1、Error:java: OutOfMemoryError: insufficient memory
错误原因
导致这个错误的原因主要是因为jdk版本问题,此处有两个原因,一个是编译版本不匹配,一个是当前项目jdk版本不支持。
查看项目的jdk
File ->Project Structure->Project Settings ->Project
或使用快捷键Ctrl+Alt+shift+S打开项目的jdk配置:
查看此两处是否与目标jdk一致
查看工程的jdk
点击上图中Modules查看对应jdk版本:
查看java编译器版本
File–>Setting…–>Build,Execution,Deployment–>Compiler–>Java Compiler
设置相应Module的target bytecode version与jkd一致版本
针对此问题,重新打开或修改pom文件(maven项目)中的内容很可能导致jdk版本重新变为1.5。如果是maven项目,可在pom文件中指定jdk相关信息:
org.apache.maven.pluginsmaven-compiler-plugin1.81.8
查看构建过程编译器所需的堆大小
File–>Setting…–>Build,Execution,Deployment–>Compiler
堆大小可由原来的700改为1000
2、程序包com.sun.tools.javac.api不存在
手动将jdk安装目录下lib包中tools.jar添加到项目中
File ->Project Structure->Project Settings ->Libraries
将tools.jar lib添加到jdk1.8.0_202-source-analysis项目中
点击ok后。解决Error:(40, 31) java: 程序包com.sun.tools.javac.api不存在问题
3、找不到sun.awt.UNIXToolkit、找不到sun.font.FontConfigManager
解决缺少的这两个类,可以去OpenJDK(传送门)拷贝
找到UNIXToolkit类,将UNIXToolkit类中的内容( 传送门)拷贝到项目的src\main\java\下新建sun\awt包中的新建UNIXToolkit.java中
到此已解决sun.awt.UNIXToolkit找不到的错误
找到FontConfigManager类,将FontConfigManager类中的内容( 传送门)拷贝到项目的src\main\java\下新建sun\font包中的新建FontConfigManager.java中
到此已解决sun.font.FontConfigManager找不到的错误