搭建JDK8源码阅读环境
- 创建一个Java项目(最基础的Java项目就可以),jdk源码在jdk目录中的src.zip中,解压后把解压的目录复制到创建的项目中。
- 创建一个测试用例,打断点调试运行一下。
- 会报如下图中的错误
-
解决第一个问题
Information:java: 系统资源不足。
Error:java: OutOfMemoryError: insufficient memory
OOM错误,原因内存不足。解决办法加大内存。
点击File–>Settings–>Build,Execution,Deployment–>Compiler,将Build process heap size(Mbytes)选项加大,默认值是700,调至1200:
- 解决第二个问题
找不到符号UNIXToolkit,FontConfigManager
错误原因:这是因为在Windows平台下缺少了两个java类文件所导致的。
这两个类文件可在OpenJDK网站上找到。
https://openjdk.java.net/
然后选择自己的版本,我的是这个 找到两个文件后把它们复制到如图所示的位置。 - 解决第三个问题
Error:(40, 31) java: 程序包com.sun.tools.javac.api不存在
Error:(41, 38) java: 程序包com.sun.tools.javac.processing不存在
Error:(42, 32) java: 程序包com.sun.tools.javac.util不存在
错误原因:缺少tools的jar包所。
解决办法:点击File–>Project Structure–>Libraries
选择自己的JDK安装目录,在lib目录下找到tools.jar,导入就好。 - 如果现在断点单步调试的话还是无法进入源码内部,因为JDK源码的受保护的,无法进入。点击File–>Settings–>Build,Execution,Deployment–>Debugger–>Stepping,取消勾选Do not step into the classes。
-
现在源码文件是只读的无法编辑,因为此时项目关联的源码文件还不是刚才复制进项目的文件,而是jdk安装目录下的源码文件,如果我们想要对源码文件做记录或者注释,重新将项目关联的源码文件设置成该项目下的源码文件即可。
点击File–>Project Structure–>SDKs
需要先将原先的jdk安装目录下关联的源码路径删除,添加刚才拷贝至项目目录下的源码路径,然后就可以编辑了。