JDK源码阅读环境搭建

这篇具有很好参考价值的文章主要介绍了JDK源码阅读环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本次针对jdk8u版本的搭建

1.新建项目

新建java项目JavaSourceLearn ,这里我创建的是maven

JDK源码阅读环境搭建

2.获取JDK源码

打开Project Structure

JDK源码阅读环境搭建

找到本地JDK安装位置将src.zip解压到项目java包中

JDK源码阅读环境搭建

整理下项目结构,删除用不到的目录

JDK源码阅读环境搭建

提示: 添加源码到项目之后首次运行需要较长时间进行编译,建议先设置好进程堆,防止编译失败

3.构建进程堆大小

打开File -> Settings -> Build, Execution, Deployment -> Compiler

设置Build process heap size (Mbytes)

JDK源码阅读环境搭建

4.调试设置

打开File -> Settings -> Build, Execution, Deployment -> Debugger -> Stepping

取消Do not step into the classes

JDK源码阅读环境搭建

说明: 该设置勾选后会在Debug时不进入到相关类路径下的方法内

5. 设置源码路径

为了能够注释以及避免修改到其他项目所使用的内容,

1.添加一个名为“JavaSourceLearn1.8”的SDK

2.并将Sourcepath修改为当前项目src下的源码内容(新增)

3.移除Sourcepath中关联的src.zip(删除)

JDK源码阅读环境搭建

修改项目使用的JDK为新建的JavaSourceLearn1.8

JDK源码阅读环境搭建

说明: 原先JDK源码包为锁定状态,Debug进入源码后无法修改/添加注释 ,这样就可以添加注释了

6. 解决报错问题

找不到UNIXToolkit和FontConfigManager

这是因为在Windows平台下缺少了这2个java类文件所导致的。

这2个类文件可在OpenJDK网站上找到,地址:http://openjdk.java.net/,打开后点Mercurial,点jdk8u,点jdk,点browse,点src,点solaris,点classes,点sun,可以找到2个文件夹,awt和font,缺少的2个文件分别在这2个文件夹下

JDK源码阅读环境搭建

JDK源码阅读环境搭建

按照下图所示目录结构,新建同样名字的目录和空内容的文件

打开openJDK上同样名字的java文件,把对应的内容复制到IDEA

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

这是缺少tools的jar包所导致的。

点击File–>Project Structure–>SDKs,手动把jdk8的tools.jar包添加到JavaSourceLearn1.8,

JDK源码阅读环境搭建

这些都解决了,重新build发现还是有错误

GTKLookAndFeel类依然报红

JDK源码阅读环境搭建

百度了一下也没有找到原因,觉得这是和Unit平台相关的判断,应该问题不大,注释掉启动果然OK

7.代码换行注释后, debug 错行的问题

之后在这里的源码中换行注释,打断点 debug 会出现错行的问题,并且无法显示局部变量,提示 source code does not match bytecode。

JDK源码阅读环境搭建

临时解决方案:E:\workspace\JavaSourceLearn\target\classes为当前项目编译后classes的路径

让BootStrapClassLoader优先加载我们的类

-Xbootclasspath/p:"E:\workspace\JavaSourceLearn\target\classes"

在测试类中配置VM options

JDK源码阅读环境搭建

JDK源码阅读环境搭建

这样就不受注释的影响了,这样每次都要配置,可以配置一个模板,每次创建都自动指定

JDK源码阅读环境搭建

JDK源码阅读环境搭建

新建测试

/**
 * @author Dongguo
 * @date 2021/8/20 0020-9:47
 * @description:
 */
class MyTest {
    @Test
    public void test1() {
        String array[] = {"hello", "world", "java"};
        List<String> list = new ArrayList<String>(Arrays.asList(array));
        list.add("zhangsan");
        System.out.println(list);
        list.remove("zhangsan");
        System.out.println(list);
    }
}

启动调试,F7调试进入源码内部

JDK源码阅读环境搭建

此时进入到我们自己搭建的源码阅读环境中。并且可以在源码中添加自己的注释。

github

如果文章有问题请留言。文章来源地址https://www.toymoban.com/news/detail-452331.html

到了这里,关于JDK源码阅读环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux上安装jdk8环境

    java8安装包下载可参考这篇文章:https://blog.csdn.net/qq_39939541/article/details/128065776 利用xftp将压缩包上传到usr/local/java下 按 i 进入编辑模式 根据自己的路径进行适当调整 注意java1.8文件名

    2024年02月07日
    浏览(47)
  • MacBook苹果电脑安装JDK8、JDK11教程,配置环境变量 + 快速切换JDK版本

    https://www.oracle.com/java/technologies/downloads/archive/ 本文主要为在MacBook苹果电脑系统下安装JDK及环境变量配置。 本文分为四步: 在Oracle官网下载JDK 安装JDk 配置环境变量 快速切换 JDK8、JDK11和JDK21是Java开发工具包的不同版本,而JavaSE、JavaEE和JavaME是Java平台的不同配置和规范,用于

    2024年04月28日
    浏览(54)
  • 【JDK】二、环境变量从jdk17切换为jdk8后不生效的解决办法

    在学习springboot3时配置了java17的环境变量,但平常工作中使用的还是java8,所以还需要再还原配置。 单还原环境变量配置后,使用 java -version 还是17的问题。 重启后输入java-version 命令 任然 是java17,显然是不对的 是因为我们在安装了jdk17后,默认添加的17的环境变量配置,并且

    2024年02月07日
    浏览(43)
  • CentOS环境下的JDK8安装

    下载 官网:https://www.oracle.com/java/technologies/downloads/#java8-linux 将下载好的压缩包拷贝到根目录下 通过xshell如果出现 bash: rz: 未找到命令 ,需要先运行下面的命令 解压 重命名 在 /etc/profile 文件中尾部添加下面的内容 使文件生效 测试是否生效

    2024年02月13日
    浏览(53)
  • Mac下安装并配置jdk8环境

    JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。 安装JDK后,会在电脑中同时安装:java的运行环境jre 和 开发环境jdk。 安装 JDK时,不建议安装太旧或太新的版本。目前的最新版本是jdk9。目前jdk8比较稳定,推荐开发时下载安装jdk8. 需要登陆oracle账号,国内下载较慢。(

    2024年02月20日
    浏览(65)
  • JDK8安装与配置环境变量,全图文

    JDK(Java Development Kit)是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的Java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JRE)和JAVA工具。没有JDK的话,无法编译Java程序(指java源码.java文件)。 http://www.oracle.com/technetwork/java/javase/downloads/inde

    2024年02月04日
    浏览(61)
  • 解决selenium升级到版本 4.16后出现的问题: org/openqa/selenium/WebDriver 编译环境是55.0(jdk11),而运行环境为52.0( jdk8 )

    最近升级了selenium到版本 4.16.1,  持续集成测试,执行mvn test时遇到问题如下 java.lang.UnsupportedClassVersionError: org/openqa/selenium/WebDriver has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 提示信息翻译:

    2024年02月03日
    浏览(55)
  • [JDK8下的HashMap类应用及源码分析] 数据结构、哈希碰撞、链表变红黑树

    [Java基础] StringBuffer 和 StringBuilder 类应用及源码分析 [Java基础] 数组应用及源码分析 [Java基础] String,分析内存地址,源码 [JDK8环境下的HashMap类应用及源码分析] 第一篇 空构造函数初始化 [JDK8环境下的HashMap类应用及源码分析] 第二篇 看源码了解HashMap的扩容机制 [JDK8环境下的

    2024年02月10日
    浏览(44)
  • JDK8 升级至JDK19

    优质博文IT-BLOG-CN 目前部分项目使用 JDK8 ,部分项目使用 JDK19 因此,环境变量中还是保持 JDK8 ,只需要下载 JDK19 免安装版本,通过配置 IDEA 就可以完成本地开发。 【1】通过快捷键 CTRL + SHIFT + ALT + S 或者 File-Project Structure... 设置 SDK 和 Language level ,不存在 JDK19 时可通过 Edit

    2024年02月19日
    浏览(44)
  • Mac卸载jdk8,安装jdk17

    本次操作基于MacBook 因为工作需要,需要将jdk版本由jdk8升级到jdk17,同一台机器上是可以同时安装多个版本的jdk的,但是为了避免一些冲突和未知问题,这里直接卸载旧版本jdk,然后再重新安装新版本。 先查看本机安装的jdk: 删除java运行环境: 到java的目录,用ls命令查看机

    2024年02月08日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包