IDEA搭建JDK1.8源码调试环境

news2024/10/11 14:17:42

大家好

下载源码

安装好 JDK 后,源码目录下面有 src.zip 文件,这个文件就是 JDK 的源码

在这里插入图片描述

搭建调试环境

新建 Maven 工程,包含以下文件

  • source:源码文件夹(手动新建)
  • test:单元测试文件夹(手动新建)
  • Main.java:主函数(自带)

在这里插入图片描述

将 src.zip 文件内容解压至 source 文件夹内,也可以只复制 src.zip/java 文件夹,其他不重要

主要看以下文件夹内的源码,是 JDK 源码里面比较重要的,而且平时开发也经常用到

  • java.io
  • java.lang
  • java.math
  • java.net
  • java.nio
  • java.time
  • java.util

在 test 文件夹内新建 hashmap/HashMapTest.java,文件内容如下:

package com.jonssonyan.test.hashmap;

import java.util.HashMap;

public class HashMapTest {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("1", "1");
        hashMap.put("2", "2");
        hashMap.put("3", "3");
        System.out.println(hashMap);
    }
}

以上是一个简单的 HashMapput 元素的方法,此时如何开启调试进入到的是本机的 JDK 源码(JDK 里面的源码是锁住不让编辑的),而不是我们自己复制出来的 source/java 文件夹内的源码,我们需要将断点进入到我们自己的 source/java 文件夹内的源码,这样我们就可以写一些注释来做笔记

找到设置,Project Structure -> SDKs -> Sourcepath,删除掉 xxxx/src.zip,点击+,添加为我们新建的 source 文件夹

在这里插入图片描述

找到设置,Build, Execution, Deployment -> Compiler -> Shared build process heap size (Mbytes)
,默认值为 700,我们将它设置为 1700

在这里插入图片描述

找到设置,Build, Execution, Deployment -> Debugger -> Stepping -> Do not step into the classes,将勾选取消

在这里插入图片描述

开启调试,这样就可以了(第一次编译时间比较长,稍作等待)

常见问题

  • F7 进入到下层 Debug,F8 同层 Debug

  • 如果 source 文件夹内有报错,除了 source/java 文件夹其他都可以直接删掉,就不会报错了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2205011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[C++][第三方库][Websocket]详细讲解

目录 1.Websocket 协议1.介绍2.原理简介 2.Websocketpp1.介绍2.安装 3.常用接口4.使用 1.Websocket 协议 1.介绍 WebSocket是从HTML5开始支持的一种网页端和服务端保持长连接的消息推送机制产生原因&#xff1a; 传统的web程序都是属于"一问一答"的形式 即客户端给…

【王道视频笔记】红黑树的定义和性质

文章目录 关于黑高的结论红黑树的插入 平衡二叉树 AVL:插入/删除 很容易破坏“平衡”特性&#xff0c;需要频繁调整树的形态。如:插入操作导致不平衡&#xff0c;则需要先计算平衡因子&#xff0c;找到最小不平衡子树(时间开销大)&#xff0c;再进行 LL/RR/LR/RL 调整 红黑树 R…

极狐GitLab X 某轨道交通控制系统龙头企业,助力业务研发敏捷化

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 60天专业…

Linux常用应急溯源命令

常用命令 1、账号相关命令 1、查询特权用户特权用户(uid 为0)&#xff1a;awk -F: $30{print $1} etc/passwd 2、查询可以远程登录的帐号信息&#xff1a;awk /\$1|\$6/{print $1} etc/shadow 2、程序相关命令 1、查看当前开放端口netstat -tnlp 2、查看当前系统上运行的所…

华为中级认证HCIP知识点总结,建议收藏

01 OSPF知识点 OSPF基本配置&#xff0c;OSPF 5种报文&#xff0c;7种邻居状态&#xff0c;4种网络类型&#xff0c;4种特殊区域&#xff0c;7类LSA&#xff0c;4种link type&#xff0c;标识一条LSA的3个要素&#xff0c;OSPF邻居域邻接关系&#xff0c;单区域&#xff0c;多区…

生成对抗网络GAN——学习笔记

经过大量阅读资料和博客&#xff0c;对GAN的认识和学习做一个记录。个人粗浅的认识&#xff0c;不管是什么模型都离不开最基础的神经网络。主要借鉴的博客内容如下 新型的神经网络模型&#xff0c;从CNN到BERT都有介绍。_最新的神经网络模型-CSDN博客 生成对抗网络——GAN&am…

Open WebUI | 自托管的类 ChatGPT 网站

Open WebUI 是一个扩展性强、功能丰富且用户友好的自托管 WebUI&#xff0c;支持 ChatGPT 网页端的大部分功能&#xff0c;支持各类模型服务&#xff0c;包括 Ollama 和 OpenAI 的 API。该项目在 GitHub 上已有 38k 星&#xff0c;非常受欢迎。 功能介绍 本篇介绍该项目的功能…

(Kafka源码五)Kafka服务端处理消息

Kafka 服务端&#xff08;Broker&#xff09;采用 Reactor 的架构思想&#xff0c;通过1 个 Acceptor&#xff0c;N 个 Processor(N默认为3)&#xff0c;M 个 KafkaRequestHandler&#xff08;M默认为8&#xff09;&#xff0c;来处理客户端请求&#xff0c;这种模式结合了多线…

眼镜店会员积分卡系统软件试用版下载 佳易王配镜顾客信息管理系统使用操作教程

一、前言 【软件试用版资源文件下载可以点文章最后卡片了解】 眼镜店会员积分软件是专门为眼镜店设计的管理工具&#xff0c;旨在通过积分活动提升顾客的忠诚度&#xff0c;促进复购率&#xff0c;并优化顾客体验。 眼镜店会员积分卡系统软件试用版下载 佳易王配镜顾客信息管…

WEB攻防-python考点CTF与CMS-SSTI模板注入PYC反编译

知识点&#xff1a; 1、PYC&#xff08;python编译后的文件&#xff09;文件反编译&#xff1b; 2、Python-Web-SSTI&#xff1b; 3、SSTI模板注入利用分析&#xff1b; &#xff08;Server-Side Template Injection&#xff09; SSTI 就是服务器端模板注入 当前使用的一…

高级算法设计与分析-MaxFlow网络流基础知识

MaxFlow网络流 1 网络流基础概念 source:源点 sink:终点 Flow:流量 capacity:容量 Residual:残量 Residual Network:残量网络 Augmenting path:增广路径,表示从源点 s 到终点 t 不包含环的路径 Bottleneck capacity:瓶颈容量 2 最大流 2.1 基础概念 2.2 增广路算法 …

C++刷怪笼(7)string类

目录 1.前言 2.正文 2.1标准库中的string类 2.1.1string类 2.1.2auto和范围for 2.1.3string类的常用接口说明 2.2string类的模拟实现 2.2.1经典的string类问题 2.2.2浅拷贝 2.2.3深拷贝 ​编辑 2.2.4写时拷贝 3.小结 1.前言 前面我们对C的封装这一大特性进行了详细…

Win10电脑录屏全攻略:轻松掌握屏幕录制技巧

在日常生活和工作中&#xff0c;我们经常需要录制屏幕来展示操作步骤、制作教程视频或记录重要内容。如果你正在使用Win10系统&#xff0c;那么有多种方法可以轻松实现屏幕录制。下面就给大家分享五种不同的录屏工具&#xff0c;让你轻松掌握屏幕录制技巧。 一、嗨格式录屏大师…

从数据到资产,数据资产管理的风口能撑多久?

从数据到资产&#xff0c;数据资产管理的风口能撑多久&#xff1f; 前言从数据到资产 前言 在今天的大数据和人工智能世界里&#xff0c;数据的价值已被推到了前所未有的高度。作为一家企业&#xff0c;如何有效管理这些数据并从中提取出最具价值的部分&#xff0c;成了各行各…

AI产品经理指南| 面试了100位AI产品经理后的心得总结

AI正深刻地变革着各行各业&#xff0c;而在这场技术革命中&#xff0c;首先受到影响的或许正是那些与AI紧密相连的专业人士——产品经理。 我们本篇中的对话始于Vanessa对「面试了100位AI产品经理」的心得总结。 &#x1f469;&#x1f3fb; Vanessa&#xff1a; 字节跳动AI产…

NTAG_8654

NTAG_8654 产品型号 NTAG_8654 标签尺寸 85.5*54*4.3MM 芯片类型 NFC Ntag 213/215/216 工作频率 13.56MHZ 工作温度 -30C~100C 标签材质 ABS 支持协议 14443A 协议 标签材质 黑/白 安装方式 背胶粘贴或柳钉安装 应用领域 物业巡更&#xff0c;设备巡检&…

工业智能化的安全护盾,CodeMeter如何实现高效授权与防护

工业自动化的快速发展对技术创新提出了越来越高的要求。为了在全球竞争中保持领先&#xff0c;制造企业不仅需要提高生产效率&#xff0c;还必须确保软件的安全性和可靠性。如何在保证高效运营的同时&#xff0c;保护核心知识产权和防止软件盗用&#xff0c;成为了行业内的重要…

拓扑排序基础及应用案例

文章目录 基础内容应用案例&#xff1a;软件构建系统的依赖管理背景描述解决方案具体步骤示例代码 基础内容 拓扑排序&#xff08;Topological Sort&#xff09;是一种针对有向无环图&#xff08;Directed Acyclic Graphs, DAG&#xff09;的排序方法。它的目的是找出一种图中…

【树莓派5B】IO串口通信使用

超级简单的串口使用 前言零、检查准备&#xff08;可略&#xff09;0.1 查看UART引脚&#xff1a;0.2 扩展一下引脚查看的方法 一、配置准备1.1 检查端口配置1.2 查看串口映射1.3 下载minicom串口调试工具1.4 通过命令获取串口上的数据 二、python的serial进行收发测试总结 前言…

Llama-3.2-3B-Instruct PyTorch模型微调最佳实践

1 引言 Meta Llama 3.2多语言大型语言模型集合&#xff08;LM&#xff09;是一个1B和3B大小&#xff08;文本输入/文本输出&#xff09;的预训练和指令微调模型集合。Llama 3.2指令调整的纯文本模型针对多语言对话用例进行了优化&#xff0c;包括智能检索和总结任务。它们在常…