解决debug到jdk源码时不能查看变量值的问题
2018-11-10 10:17
561 查看
目录
如何跟踪jdk源码
看到这个标题大概大家都会在心里想谁还跟踪个源码呀,在eclipse中打个断点,以debug的方式运行,然后F5进入方法,F6跳过方法,F7跳出方法。但是不知道大家有没有注意到,如果你跟踪到的是jdk源码的话,比如
HashMap的
put方法,即使你F5进入到这个方法的内部了,你也看不到你put的 key 和 value 的实际值。但是我们既然要跟踪源码,那么肯定要看到我们设置的 key 和 value 是如何历经九九八十一难才进入到
HashMap这个桶之中的。为什么说是桶,大家有兴趣的可以自己去深入了解一下HashMap,这里我就不做过多的介绍了。
这是我们跟踪源码看到的情况:
这是我们想要看到的情况:
接下来就是今天的正题了
1、 编译源码
1.1 、简单介绍
首先我们要知道一个jar也就是
rt.jar, 它是JAVA基础类库,也就是你在java doc里面看到的所有的类的class文件,但是
orcale在编译jdk源码的时候为了减小jar包的大小,使用的是
javac -g:none也就是不带任何的调试信息。这就是我们跟踪jdk源码但是看不到变量值的罪魁祸首,但是上帝在给你关了一扇门的同时也会给你开一扇窗的。那么我现在就来带你一下这扇窗是怎么打开的。
上面这张图是jdk安装目录,可以看到这个有个
src.zip,它就是今天的主角:jdk源码,你可以把它解压出来看一下里面的内容,其实就是一个个的java类。
1.2、 开始编译源码
- 我们需要将它解压出来,至于放在哪里看你心情,只要你能找得到就可以了,因为我们它是我们今天的重头戏。解压出来就是下面这些东西
- 打开eclipse新建一个java工程,命名也看你心情。
- 将第一步解压出来的那6个文件夹全部复制到你工程下的src中(其实不需要全部,有些是可以删除的,但是为了省事就全部都复制进去好了。)
- 其中有报错,但是你不用管,你只需要等到eclipse将这个工程编译完成后将其导出为jar文件。选中
src-->右键-->选择Export
- 取好你的名字,选择放到哪里,然后
Finish
就可以了。至此我们就完成第一步了。
2、 关联源码
- 在你的eclipse的工具栏选择
window-->preferences
,找到Installed JREs
, 选择你使用的jdk点击Edit
进行编辑。
- 在编辑窗口点击
Add External JARs
选择我们刚刚编译好导出的那个jar包。
红色的jar就是我们自己导出的jar,我们要将我们导出的jar往上移,移到蓝色的
rt.jar
上面。然后Finish
将我们编译的jar和src.zip进行关联。选择
JRE System Library
找到里面我们编译的jar, 右键-->Propertites。
- 在
Propertites
选择External File...
找到我们最开始的src.zip并选择它。然后Aplly
ok
。一切结束。
3、 大功告成
现在你就可以愉快的跟踪源码,看看你的变量是怎么在
java的世界中遨游了。
相关文章推荐
- 解决调试JDK源码时,不能查看变量的值问题
- 解决使用EclipseDebug进入到JDK源码无法查看运行时变量的问题
- 解决Eclipse调试JDK源码无法查看变量值
- Eclipse中Debug时鼠标悬停不能查看变量值的问题
- Java基础教程6-Eclipse中如何解决查看JDK源码遇到source not found问题
- Eclipse中Debug时鼠标悬停不能查看变量值解决办法
- 解决谷歌为Android系统提供的支持库android-support-v4。jar不能绑定查看源码的问题
- centos源码方式安装ipython2.7,setuptools、pip并解决ipython不能不能使用方向键的问题
- 解决jqgrid当rowNum<record时数据不能全显示的问题(jqGrid 源码 非压缩)
- 解决 Android 26 无法查看系统源码的问题
- Android4.04下载源码图解~解决公网IP不能直接访问问题
- 解决java 查看JDK中底层源码的实现方法
- 解决Debug JDK8源码无法查看局部变量的问题
- 解决Myeclipse在调试(debug)时无法显示变量值问题
- Android4.04下载源码图解~解决公网IP不能直接访问问题
- JS 文件在浏览器中查看源码时会出现 乱码的问题 解决
- eclipse maven项目debug时出现找不到源码问题解决
- jstree详解(解决jstree树的sort和move_node和drop drag一起使用时不能排序的问题)(附源码)
- 解决IDEA不能debug的问题