jdk javac运行不了_Intellij IDEA搭建jdk源码阅读环境

一、找到源码位置

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

9f4e18e60f540e0ccb34dbcd2d6f2fbf.png

在这里解压。

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

08d1edd6ecc4171a5dbabc9dff1dfe6a.png

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

1、Intellij IDEA新建java项目

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

f5919787ce17b0e881692c9e150e5eb2.png

选取默认模板后Next:

e644f21bbd23bf4df1e1e627cd210a9d.png

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

c4893ab51b3d1c8be6e385a18ea05471.png

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

8e4592b3cfc632afd52b14554146ccf4.png

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

4f1f973b96741452fc4f0eaeaf2b2725.png

注意:

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

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

2d66bec6cf86d348e1417b51e6c2a316.png

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

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

672adb8c1a29ddeb5d15403e12001162.png

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

1ced0ac21055833f8f0de0b39f8de045.png

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

d21c7803fe76afba1147b1b4d659647d.png

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

4f9ef6b8703d6f48a86ab28b054d727d.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一致

57b7168d79c1862b4fb1526cb6c5b22f.png

查看工程的jdk

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

01a9b99d14100335391f8695acf175c1.png

查看java编译器版本

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

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

0df12282cadd0399c98a6a9ecaa957ea.png

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

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

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

10e86240defaf1be1d9876a83e1791f9.png

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

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

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

eb8179da2432cea1c5c0a7ed2714a820.png

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

ace927a2a287db11a99c51a09468fd4f.png

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

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

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

7e89891a6877df9c29aa3dd0d5e830ec.png

ab82850b109d380b97018541ff78b67f.png

73fd5960ce66928ac8bcd57ee1d5a00e.png

ebcc5d62f0689f21efd2882269237fec.png

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

36c3e7efceba0719f2c66df421a0b53c.png

5327caddfe972ada82a410ed1dbc079a.png

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

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

1de9d6f693938572b3ca5db88c4fb286.png

编辑整理丨田培辰

8348fc89060b3720c1ea3e5f3fb4d309.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IntelliJ IDEA是一款功能强大的集成开发环境,它可以支持多种类型的项目,并且提供了丰富的运行配置选项。根据引用中的信息,推荐使用Javac编译器,并根据项目使用的JDK版本统一设置Project bytecode version。 根据引用中提到的运行环境和项目技术,IntelliJ IDEA可以支持Springboot、Mybatis-plus、SpringMvc、Shiro和Redis等技术。你可以在IntelliJ IDEA的运行配置中选择相应的配置来运行你的项目。 另外,根据引用中的信息,如果你担心重装系统或更换新电脑后需要重新配置IntelliJ IDEA,不用担心。IntelliJ IDEA支持配置导出和导入功能,你可以在导出配置文件后,下次安装IntelliJ IDEA时直接导入配置即可,省去了重新配置的麻烦。 综上所述,IntelliJ IDEA提供了丰富的运行配置选项来支持不同类型的项目,并且支持配置导出和导入功能,方便你在重装系统或更换电脑时快速设置开发环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [最新 IntelliJ IDEA 详细配置步骤(图文版)](https://blog.csdn.net/qq_41412253/article/details/117002368)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Java企业报表管理系统源码](https://download.csdn.net/download/m0_55416028/88269629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值