非常实用,IDEA 搭建JDK源码学习环境(可修改+断点+笔记)
点击关注公众号,实用技术文章及时了解
来源:chenxiao.blog.csdn.net/article/details/104369824
在学习JDK源码的时候,自然少不了代码的调试。
阅读与调试各个版本JDK 的环境搭建基本一致,这里以JDK1.8为例。
首先,在安装的jdk1.8路径下,找到src.zip
和javafx-src.zip
压缩文件 ,
选择一个合适的目录 复制过来一份
接着新建两个文件夹
javafx-src
和 src
,将两个压缩包分别放入两个文件夹,并解压。
接着用IDEA新建一个Java项目,注意目录不要是LeanningJDK1.8,正常建项目哈
新建项目完成之后,点击file>project structure
,然后选中SKDS
,切换到Sourcepath
选项
将原先的src.zip
和javafx-src.zip
依赖,“-”减号删去,“+”好新建你本地解压后的src
和javafx-src
依赖,之后我们点击apply
然后点击file --> Setting --> Build,Execution,Deployment --> Debugger --> Stepping
把Do not step into the classes中的ajva.*
,javax.*
取消勾选,其他的随意, 点击apply
。
这下就大工告成了。
简单代码的打印输出
简单的调试
成功进入JDK源码中。
下面说几个阅读调试源码的技巧,考虑到网上资料很多了,我给大家找了一篇 IDEA 阅读调试 Java 源码的技巧,我看了看觉得有几个地方需要补充一下:
https://blog.csdn.net/u014082714/article/details/103401436
学会 IDEA 的这个功能,阅读源码简直太简单了!!!
超实用:阅读跟踪 Java 源码的几个小技巧!
查看类直接可以用快捷键alt + 7
,可以看到这个方法有哪些调用方法
通过点击方法,可以定位到相关的位置
调试中的条件断点:
在断点处右击:
可以设置条件,例如设置test(1)==6
,那么当条件满足时,到 这步才会停下来。
细心的话,可以发现 suspend
这个选项,有个Thread
,这个可以进行多线程的一个调试。可以控制线程的一个执行顺序。
推荐
主流Java进阶技术(学习资料分享)
Java面试题宝典
加入Spring技术开发社区
PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!
非常实用,IDEA 搭建JDK源码学习环境(可修改+断点+笔记)相关推荐
- jdk javac运行不了_Intellij IDEA搭建jdk源码阅读环境
一.找到源码位置 直接找到jdk安装的目录,会看到src.zip的压缩包,这里面就是jdk的源码,例如下图: 在这里解压. 第一次尝试建议使用9或更早版本jdk的源码,否则易造成卡死. 二.Intel ...
- Mac搭建JDK源码阅读环境
点赞再看,养成习惯,微信公众号搜索[虚竹讲程序经],获取更多技术干货! 想要读懂JDK源码,需要在自己电脑上搭建JDK的源码阅读环境,正所谓,工欲善其事,必先利其器.下面演示如何在Mac上结合Idea ...
- JAVA JDK 源码学习
JAVA JDK 源码学习 ,以1.8为例,按照下面图片顺序依次学习: applet ,awt,beans,io,lang,math,net,nio,rmi,security,sql,text,tim ...
- JDK源码学习-基础
JDK源码学习 目录 基础 1. 安装 1.1 下载JDK 1.2 配置环境变量 1.3 验证 2. 简单的程序 2.1 编写代码 2.2 编译文件 2.3 执行类 3. java基本类型 基础 1. ...
- Gitolite + repo 搭建安卓源码开发环境
Gitolite + repo 搭建安卓源码开发环境 转载请注明出处:http://blog.csdn.net/u011479494/article/details/50629669 相比gitosi ...
- 【深入浅出 Yarn 架构与实现】1-2 搭建 Hadoop 源码阅读环境
本文将介绍如何使用 idea 搭建 Hadoop 源码阅读环境.(默认已安装好 Java.Maven 环境) 一.搭建源码阅读环境 一)idea 导入 hadoop 工程 从 github 上拉取代码 ...
- JDK源码学习笔记——Integer
一.类定义 public final class Integer extends Number implements Comparable<Integer> 二.属性 private fi ...
- JDK源码学习笔记——String
1.学习jdk源码,从以下几个方面入手: 类定义(继承,实现接口等) 全局变量 方法 内部类 2.hashCode private int hash; public int hashCode() {i ...
- JDK源码阅读环境搭建
内容来源 B站Up主: CodeSheep 视频: https://www.bilibili.com/video/BV1V7411U78L 感谢大佬分享学习心得 Thanks♪(・ω・)ノ~~~ 1. ...
最新文章
- 你会不会模拟超过 5 万用户的并发访问?
- golang net包 ip相关函数 简介
- windows api打开文件对话框
- java常用工具类_java(二):工作中常用到的工具类
- CI框架源码阅读笔记8 控制器Controller.php
- linux-basic(6)linux的文件权限与目录配置
- Golang list双向链表源码走读
- 服务器指定网卡进行备份数据避免影响业务口
- Eclipse建立webservice客户端
- leaflet 加载海量点位,点击marker 查看详情功能
- P3332 [ZJOI2013]K大数查询
- DropBox系列-安卓DropBox介绍
- 停车场计费算法 php,时段计费算法,一般用于停车计费
- 新一配:程序员在地铁上写代码被路人吐槽:有什么好装的!网友评论炸锅了
- 2023 新版二开彩虹易支付 持续更新
- 看中科院大牛博士如何进行文献检索和阅读
- oracle oats 工具讲解,Oracle 表空间基本操作
- java json utf-8_java读取json数据发生中文乱码的解决方法
- ios开发 多人语音聊天_iOS语音通话功能实现流程(实时语音通话二)
- 【Pycharm教程】PyCharm 安装、卸载和升级包
热门文章
- 库克笑嘻嘻!苹果明年或将迎来继iPhone 6后第二次换机大潮
- 荣耀20 Pro 5000元最强拍照机翻车?官方怒放样张辟谣
- 中国移动中国联通中国电信 三家运营商公布首批5G城市名单
- 苹果推送iOS12.2系统更新:电信用户一定要升级!
- 弯道超车时机已来 百度:中国有机会定义AI时代的用户体验标准
- 情人节消费报告出炉!这三个城市最爱送花...
- 拳王虚拟项目公社:有没免费虚拟资源池,虚拟资源平台该选择什么,虚拟资源整合赚钱
- leetcode-reverse words in a string
- java怎么从大到小排序元祖_在java中对元组列表进行排序的有效方法
- java smtp pop3_POP3/SMTP指令