目录
如何跟踪 jdk 源码
1, 编译源码
2, 关联源码
3, 大功告成
如何跟踪 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 的工具栏选择
Windows-->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 的世界中遨游了.
来源: https://www.cnblogs.com/zc-programer/p/9938508.html