idea 关联jdk源码_Intellij IDEA搭建jdk源码阅读环境

一、找到源码位置

直接找到jdk安装的目录,会看到src.zip的压缩包,这里面就是jdk的源码,例如下图:

136be34314a57ba454d97dfa8ef5d707.png

在这里解压。

第一次尝试建议使用9或更早版本jdk的源码,否则易造成卡死。

136be34314a57ba454d97dfa8ef5d707.png

二、Intellij IDEA搭建源码阅读环境

1、Intellij IDEA新建java项目

打开Intellij IDEA,左上角File > Project,新建一个java项目:

136be34314a57ba454d97dfa8ef5d707.png

选取默认模板后Next:

136be34314a57ba454d97dfa8ef5d707.png

项目名称与包结构示例,填写后点击Finish:

136be34314a57ba454d97dfa8ef5d707.png

项目创建完成,例如下图:

136be34314a57ba454d97dfa8ef5d707.png

2、把源码src.zip移动到该工程下的src目录下,并新建Main类

136be34314a57ba454d97dfa8ef5d707.png

注意:

<1.直接粘贴到idea可能造成长时间卡顿,建议使用本文方法;

<2.部分教程把源码粘贴到自定义包目录下,可能导致源码import语句报错。

136be34314a57ba454d97dfa8ef5d707.png

3、为了避免修改原来的SDKs,另外再添加一个名为“jdk-source-analysis”的jdk。

File ->Project Structure->Platform Settings ->SDKs

136be34314a57ba454d97dfa8ef5d707.png

将其关联的jdk安装目录下的源码src.zip替换成项目的src

136be34314a57ba454d97dfa8ef5d707.png

将jdk源码项目src添加到sourcepath中

136be34314a57ba454d97dfa8ef5d707.png

修改项目(JdkSourceLearn)使用的jdk为新建的“jdk-source-analysis” jdk

136be34314a57ba454d97dfa8ef5d707.png

三、运行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一致

136be34314a57ba454d97dfa8ef5d707.png

查看工程的jdk

点击上图中Modules查看对应jdk版本:

136be34314a57ba454d97dfa8ef5d707.png

查看java编译器版本

File–>Setting…–>Build,Execution,Deployment–>Compiler–>Java Compiler

设置相应Module的target bytecode version与jkd一致版本。

136be34314a57ba454d97dfa8ef5d707.png

查看构建过程编译器所需的堆大小

File–>Setting…–>Build,Execution,Deployment–>Compiler

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

136be34314a57ba454d97dfa8ef5d707.png

2、程序包com.sun.tools.javac.api不存在

手动将jdk安装目录下lib包中tools.jar添加到项目中

File ->Project Structure->Project Settings ->Libraries

136be34314a57ba454d97dfa8ef5d707.png

将tools.jar lib添加到jdk1.8.0_202-source-analysis项目中。

136be34314a57ba454d97dfa8ef5d707.png

点击ok后。解决Error:(40, 31) java: 程序包com.sun.tools.javac.api不存在问题。

3、找不到sun.awt.UNIXToolkit、找不到sun.font.FontConfigManager

解决缺少的这两个类,可以去OpenJDK(http://openjdk.java.net/)拷贝

136be34314a57ba454d97dfa8ef5d707.png

136be34314a57ba454d97dfa8ef5d707.png

136be34314a57ba454d97dfa8ef5d707.png

136be34314a57ba454d97dfa8ef5d707.png

找到UNIXToolkit类,将UNIXToolkit类中的内容( 传送门)拷贝到项目的src\main\java\下,新建“sun\awt”包中的新建“UNIXToolkit.java”中。

136be34314a57ba454d97dfa8ef5d707.png

136be34314a57ba454d97dfa8ef5d707.png

到此已解决sun.awt.UNIXToolkit找不到的错误

找到FontConfigManager类,将FontConfigManager类中的内容( 传送门)拷贝到项目的src\main\java\下,新建“sun\font”包中的新建“FontConfigManager.java”中。

136be34314a57ba454d97dfa8ef5d707.png

编辑整理丨田培辰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值