jdk源码调试-较好解决方案

Jdk源码断点看不到变量值

原因: sun对rt.jar中的类编译时,去除了调试信息
解决: 可以自己编译Jdk

使用eclipse编译Jdk

新建一个java-project
将D:/programfiles/Jdk/Jdk8/src.zip解压放到java-project的src中,并处理报红色的类,一般swing的可以直接删除
使用export功能导出普通jar命名为rt_debug.jar
将该jar拷贝到D:/programfiles/Jdk/Jdk8/jre/lib/endorsed/rt_debug.jar
再到eclipse全局Jdk设置中添加一个扩展jar,指定为rt_debug.jar(该Jar和原系统的jar们并存)
注意: 以上处理结果后确实能调试Jdk源码了,进入断点也能Inspect各种变量的值了,但是还不是我们想要的更好的效果,我们想要的效果是: 在Java代码中改变了注释就能立刻在class中显示,并且调式断点能进入java而非class文件

Java代码中改变了注释就能立刻在class中显示

做之前有个前提,就是不采用rt_debug.jar的方式了,改为直接修改rt.jar(修改一个文件即可,比如修改HashMap.java的注释(注意不能修改实际代码,且行不能变,行变了要关掉开发工具重新替换rt.jar)
编译好这类生成的HashMap相关的14个class去替换掉rt.jar中的HashMap相关的14个class,只需要替换一次并重启eclipse,Jdk就会认为是一个新的rt.jar文件了,这时断点进入class也能Inspect变量的值)
采用这种方式后,相当于换了一个rt.jar文件,继续看下面:
项目->右键属性->java Build Path->Libraries找到rt.jar->JRE System Library [JavaSE-1.8]->rt.jar->Source attachment编辑为/jdk/src(这里我的Jdk源码项目就在工程中,名称就是jdk的一个普通Java Project)
这样做后,相当于在断点时,进入的是rt.jar里面的class文件,但源文件是jdk/src下的文件,eclipse重启后,修改Java中的注释,立刻就能在class中看到被改变了

调式断点能进入java而非class文件

右键需要Debug的文件->Debug Configuations->Source->Add->Java Project->选择jdk项目确定
这样做后下次调试就能进入Java文件了,但缺点很明显,每个需要调试的类都要设置Source,很麻烦,但目前尚未找到解决方法,不过已经比起最初好很多了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
jdk-11-windows是指Java开发工具包(Java Development Kit)的第11个版本,适用于Windows操作系统。JDK是使用Java语言进行开发的应用程序和软件的环境,它提供了许多工具和功能,可用于编写、编译和运行Java程序。 JDK-11包含了许多新的特性和改进,使得Java编程更加方便和高效。其中一项突出的特性是JVM(Java虚拟机)的性能改进,它可以提供更快速和更高效的执行速度。其他一些特性包括G1垃圾回收器的增强和适用于观察、诊断和监控Java程序的Java Flight Recorder和Java Mission Control工具等。 对于Windows用户来说,JDK-11提供了易于安装和使用的Windows平台上的开发环境。它包括了JRE(Java运行环境)和用于开发、调试和测试Java应用程序的工具集。通过JDK-11,开发人员可以利用Windows操作系统的优势和特性,进行快速、高效和可靠的Java开发。 此外,JDK-11还提供了许多与安全性和稳定性相关的改进。它包含了新的安全性特性,可以帮助开发人员保护他们的应用程序免受潜在的安全威胁。另外,JDK-11还包含了一些稳定性改进,可以提高应用程序的性能和可靠性。 总之,JDK-11-windows是适用于Windows操作系统的Java开发工具包的最新版本。它提供了许多新的特性和改进,使得Java开发更加方便、高效和安全。对于Windows用户来说,使用JDK-11可以提供更好的开发体验,使他们能够更轻松地创建出优秀的Java应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2023年Java面试宝典

您的鼓励是对我的肯定,共建希望

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值