JDK8源码阅读环境配置

说明

  • 环境

jdk 版本:1.8.0_381
系统:macos 13.5.1 Intel

  • 目的

学习 jdk8 源码,并能自定注释。

新建 java 工程

在 idea 中新建 java 工程,注意并非 maven 工程。
如下图:
JDK8源码阅读环境配置_第1张图片
完成后,如下图:
JDK8源码阅读环境配置_第2张图片

配置源码

src.zip

找到 jdk 安装目录下的 src.zip 文件,该文件即为源码压缩包。
如下图:
JDK8源码阅读环境配置_第3张图片

复制到 idea

解压 src.zip 压缩包,并将解压后的所有文件复制到新建的 java 工程。
解压后的文件如下图所示:
JDK8源码阅读环境配置_第4张图片
复制到 idea 耗时比较长,须耐心等待。注意不要直接通过finder(资源管理器)复制到对应的目录,因为在 idea 中复制会自动匹配包路径。
复制完成后如下图所示:
JDK8源码阅读环境配置_第5张图片

解决 tools 不存在

测试程序如下:

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");

        Map<String, Object> map = new HashMap<>();
        map.put("name", "jay");
        String name = (String) map.get("name");
        System.out.println(name);

    }
}

运行后报错:

java: 程序包com.sun.tools.javac.api不存在

配置 Libraries,进入 File》Project Structure,选择 jdk 安装目录下的 tools.jar 文件,如下图所示:
JDK8源码阅读环境配置_第6张图片
点 OK 后,再次运行测试程序,没有报错了。

解决 debug 进入 jdk 相关类

debug 模式下,通过 debug 进去 HashMap 断点,但是进不去,这是因为 idea 的限制。需要进入 Settings 设置。
如下图所示:
JDK8源码阅读环境配置_第7张图片
去掉如上复选框,点击 OK 即可。

配置源码路径

此时 debug 时,比如进入 HashMap 源码,进入的还是 jdk 的源码,为只读模式,不能添加自己的注释。
打开项目配置,发现 SDKs》Sourcespath 配置的还是 jdk 安装目录下的 src.zip 文件,需要将其改成我们解压后(新建的 java 项目中)的目录。
先删除之前的 src.zip 引用,再添加 java 项目对应的目录。
配置完成后如下图:
JDK8源码阅读环境配置_第8张图片
点击 OK 后,再次 debug 测试程序,HashMap 对应的就是我们自己 java 项目中的代码了。
JDK8源码阅读环境配置_第9张图片

完成

现在可以愉快地阅读源码了,并且可以写上自己的注释了。
建议将当的 java 项目上传到自己的 git 仓库。

可以看到,如果进入的 HashMap 在 src.zip 压缩包文件,会有一个感叹号,表示当前文件只读。
但是此时如果点击左上角定位按钮,还是会定位到 jdk 的源码中,这个并不影响我们 debug 和写注释,后续如果我解决了此问题,会及时更新到这里。大佬们如果知道解决方法,欢迎留言,感谢~

你可能感兴趣的:(#,Java基础,jdk8,源码)