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

目录

  • 1. 环境
  • 2. 搭建
    • 2.1 找到JDK1.8的src文件
    • 2.2 IDEA搭建一个简单java项目
  • 3. 解决报错问题
    • 3.1 OOM,内存溢出,资源不足问题
    • 3.2 找不到UNIXToolkit和FontConfigManager
    • 3.3 程序包com.sun.tools.javac.*不存在
  • 4. 完善使用
    • 4.1 配置Ctrl+鼠标左键进入本项目源码文件
    • 4.2 解决debug的时候,step into 进不了源码
    • 4.3 无法编辑注释源代码
    • 4.4 debug的时候,误点Alternative source availble for the class xxxx 的disable

1. 环境

win10,IDEA,JDK8(1.8.0_221)

2. 搭建

2.1 找到JDK1.8的src文件

一般在本地JDK1.8文件夹根目录下,名字叫src.zip,找不到的话可以用everything全局搜一下
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第1张图片

2.2 IDEA搭建一个简单java项目

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

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个文件夹下
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第7张图片
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第8张图片
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第9张图片
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第10张图片
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第11张图片
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第12张图片
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第13张图片
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第14张图片
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第15张图片
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第16张图片
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第17张图片
按照下图所示目录结构,新建同样名字的目录和空内容的文件
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第18张图片
打开openJDK上同样名字的java文件,把对应的内容复制到IDEA,解决问题2,3

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

这是缺少tools的jar包所导致的。
点击File–>Project Structure–>Libraries,手动把jdk8的tools.jar包添加,解决问题4
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第19张图片
再次运行main方法,搞定!
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第20张图片

4. 完善使用

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

点击File->Project Structure->Platform Settings->SDKs->1.8->Sourcepath,点击+,添加项目路径为源代码文件,路径级别到com.sum的上一级就ok,设置完毕后,通过Ctrl+鼠标左键跳转的文件就是本项目源码文件了,可以编辑备注注释等操作。
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第21张图片

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

在App代码里加个HashMap来debug一下
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第22张图片
此时如果我们打断点进行单步调试的话,可以发现点击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安装目录下的源码文件。这时候单步调试进去后,手动选择一下源文件就可以了。
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第23张图片

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

debug的时候不小心点掉了disable,无法切换源文件。
File–>Settings–>Build,Execution,Deployment–>Debugger
如何搭建JDK8源码阅读项目(解决搭建过程报错和优化debug)_第24张图片
over,enjoy!

你可能感兴趣的:(#,原生)