如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)

1. 环境

win10,IDEA,JDK8(1.8.0_221)

2. 搭建

2.1 找到JDK1.8的src文件

一般在本地JDK1.8文件夹根目录下,名字叫src.zip,找不到的话可以用everything全局搜一下
在这里插入图片描述

2.2 IDEA搭建一个简单java项目

打开IDEA,File->New->Project,什么都不勾选,直接下一步
在这里插入图片描述
不用勾选东西,直接next,填一个有意义的项目名,比如jdk8-source
在这里插入图片描述
右键项目名,选择Show in Explorer,打开项目所在目录,进入项目,进入src目录
在这里插入图片描述
把第一个步骤找到的src.zip复制过来,直接解压到当前目录下,
在这里插入图片描述
回到IDEA,稍等一下,src目录下就会出现刚刚解压的内容,右键src,新建一个java class,随便起个名字,就叫App吧,输入main,回车,输入"JDK8源码阅读".sout,回车,然后运行,第一次运行会build很久,然后会爆错误,大概是4个的样子。
在这里插入图片描述

3. 解决报错问题

3.1 OOM,内存溢出,资源不足问题

点击File–>Settings–>Build,Execution,Deployment–>Compiler,将Build process heap size(Mbytes)选项加大,默认值是700,调至1200就ok,解决问题1

3.2 找不到UNIXToolkit和FontConfigManager

这是因为在Windows平台下缺少了这2个java类文件所导致的。
这2个类文件可在OpenJDK网站上找到,地址:OpenJDK,打开后点Mercurial,点jdk8u,点jdk,点browse,点src,点solaris,点classes,点sun,可以找到2个文件夹,awt和font,缺少的2个文件分别在这2个文件夹下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照下图所示目录结构,新建同样名字的目录和空内容的文件
在这里插入图片描述
打开openJDK上同样名字的java文件,把对应的内容复制到IDEA,解决问题2,3

3.3 程序包com.sun.tools.javac.*不存在

这是缺少tools的jar包所导致的。
点击File–>Project Structure–>Libraries,手动把jdk8的tools.jar包添加,解决问题4
在这里插入图片描述
再次运行main方法,搞定!
在这里插入图片描述

4. 完善使用

4.1 配置Ctrl+鼠标左键进入本项目源码文件

点击File->Project Structure->Platform Settings->SDKs->1.8->Sourcepath,点击+,添加项目路径为源代码文件,路径级别到com.sum的上一级就ok,设置完毕后,通过Ctrl+鼠标左键跳转的文件就是本项目源码文件了,可以编辑备注注释等操作。
在这里插入图片描述

4.2 解决debug的时候,step into 进不了源码

在App代码里加个HashMap来debug一下
在这里插入图片描述
此时如果我们打断点进行单步调试的话,可以发现点击Step Into无法进入源码内部,因为JDK源码是受保护的,无法进入,但是点击Force Step Into是可以进入源码内部的。如果想要直接按F7(即点击Step Into)进入源码内部的话,需要做如下设置:
点击File–>Settings–>Build,Execution,Deployment–>Debugger–>Stepping,取消勾选Do not step into the classes

4.3 无法编辑注释源代码

如果我们想要对源码文件做记录或者注释时,会发现源码文件是只读的,无法编辑。因为此时项目关联的源码文件还不是刚才复制进项目的文件,而是jdk安装目录下的源码文件。这时候单步调试进去后,手动选择一下源文件就可以了。
在这里插入图片描述

4.4 debug的时候,误点Alternative source availble for the class xxxx 的disable

debug的时候不小心点掉了disable,无法切换源文件。
File–>Settings–>Build,Execution,Deployment–>Debugger
在这里插入图片描述
over,enjoy!

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值