【Eclipse】解决Eclipse调试JDK源码无法查看变量值

问题

研究JDK源码的同学应该知道,在debug的时候是无法看源码中变量的值的,为什么呢?因为在JDK中,sun对rt.jar中的类编译时,去除了调试信息。那么是否有解决办法呢?答案是肯定的。

解决方案

我的测试版本是jdk1.8.0_221

1.在你的D:盘新建jdk文件夹,然后在文件夹里面分别创建两个文件夹jdk_src(存放源码)和jdk_debug(存放编译结果文件)。
在这里插入图片描述

2.从%JAVA_HOME%路径下找到src.zip源码源码压缩包,解压至D:/jdk/jdk_src目录中,并只保留java,javax,org三个文件夹。

在这里插入图片描述

3.从%JAVA_HOME%\jre\lib找到rt.jar,将它拷贝到D:/jdk文件夹。

作用是后面编译会依赖rt.jar中的类
在这里插入图片描述

4.打开DOS命令窗口,用命令cd命令进入D:/jdk文件夹,然后执行命令dir /B /S /X .\jdk_src\*.java > .\filelist.txt,完成后会在D:/jdk目录生成filelist.txt文件,里面为待编译的文件路径*/*.java
在这里插入图片描述

5.执行命令javac -J-Xms16m -J-Xmx1024m -sourcepath .\jdk_src -cp .\rt.jar -d .\jdk_debug -g @.\filelist.txt >> .\log.txt 2>&1会编译filelist.txt文件中列出的*.java源文件,编译的*.class文件会放入D:/jdk/jdk_debug文件夹,同时编译过程中会在D:/jdk生成log.txt文件。

作用是编译
在这里插入图片描述

6.执行cd命令切换到D:/jdk/jdk_dug,然后执行jar cf0 rt_debug.jar **.class文件打成jar,打包完成后会在D:/jdk/jdk_debug目录中生成rt_debug.jar
在这里插入图片描述

7.把这个生成的rt_debug.jar包复制到%JDK_HOME%\jre\lib\endorsed下。如果没有endorsed目录,自己创建一下。
在这里插入图片描述

8.在eclipse里面找到Window->Installed JRES,选择jdk,点击Edit,然后点击Add External jars,选择刚才创建的rt_debug.jar导入,然后把rt_debug.jar移动到rt.jar的前面,最后选中rt_debug.jar,点击Source Attachment选择%JAVA_HOME%/jdk/src.zip添加源文件,最后,重启eclipse。

我实际操作时,rt_debug.jar自动被引入了,并且顺序也在rt.jar的前面,只给rt_debug.jar设置了源码src.zip

在这里插入图片描述

完整的命令过程:

D:\jdk>dir /B /S /X .\jdk_src\*.java > .\filelist.txt

D:\jdk>javac -J-Xms16m -J-Xmx1024m -sourcepath .\jdk_src -cp .\rt.jar -d .\jdk_debug -g @.\filelist.txt >> .\log.txt 2>&1

D:\jdk>cd jdk_debug

D:\jdk\jdk_debug>jar cf0 rt_debug.jar *

D:\jdk\jdk_debug>





参考:
Eclipse调试JDK看不到变量的值是什么

解决Eclipse调试JDK源码无法查看变量值 本篇基于该篇文章

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值