java debug jdk 源码_eclipse 如何debug jdk源码(转)

转:http://blog.csdn.net/cherrycheng_/article/details/51004386

原英文地址:http://stackoverflow.com/questions/18255474/debug-jdk-source-cant-watch-variable-what-it-is

问题效果图:

ce1aed0fb506200897d30520663ffee9.png

解决后的效果:

3eedd8ed7a8805bf8bd76a5f47218c80.png

具体步骤:

1.制作可调试的rt.jar包

1.1 .在D盘新建jdk7_src及jdk7_rt-debug两个文件夹

444ea37b743d1fa9bf7a4518492d8b0b.png

1.2.复制JDK源码

将环境变量中配置的java_home地址或者将用的外部JDK安装目录下的src.zip

复制到D:/jdk7_src,解压.效果如下图

12d6d14ac77a016ea9316cc9366ca4ba.png

04fc8c3f8f1e62207eedb60080007f2f.png

1.3.选择要编译的源码

原文中说,留下Java,javax,org三个文件夹就足够了,其他都可以删除。

我只是把swing的内容删除了,其他都留下了。大伙可以随意。

swing包目录位置:com\sun\java\swing,javax\swing

1.4.得到要处理的java文件名

命令及效果图如下:

要查看一下,自动生成的filelist.txt中是否有内容哦,没有数据的话下面的操作是没用的。

d:

cd jdk7_src

dir/B /S /X *.java>filelist.txt

28c09f9504cfc95e95e296a223e1660f.png

1.5.复制jre/lib/rt.jar

把JDK安装目录(复制src.zip的那个目录)下jre/lib下的rt.jar复制到jdk7_src目录下

73b5d78cd9ba7b41ff7c94d71fcfbf94.png

d0cfe3b88a4b15aa26800c400f83154d.png

1.6.生成一些可调试的class文件夹

执行如下命令,成功后,jdk7_rt-debug文件夹会产生一些可调试的class文件夹,如下图:

如果没有,请打开jdk7_src/log.txt,ctrl+F查找“错误”,并解决。

一般,将报错的java路径及路径对应的文件删除,再执行dir /B /S /X *.java > filelist.txt即可。

javac -J-Xms16m -J-Xmx1024m -sourcepath D:\jdk7_src -cp D:\jdk7_src\rt.jar -d D: \jdk7_rt-debug -g @filelist.txt >> log.txt 2>&1

9311205b83b9224f0bc27d23498298ca.png

1.7.将这些文件打包成Jar

命令和效果如下图

cd ..

cd jdk7_rt-debug

jar cf0 rt_debug.jar*

9d4fd5cfb046e9c1efdbca7c7891eda4.png

2.使用可调试的rt.jar

2.1.把rt_debug.jar放入JDK中

放入java_home/jre/lib/endorsed目录

192d53e2d2dd3e25564678341f7b5306.png

2.2.将rt_debug.jar加入Eclipse使用的JDK中

4f93b9713becd21833b92b18b6acf689.png

2.3.添加rt_debug.jar的源码包

注意:若原来的JRE目录下已经存在了rt.jar包,则要将新编译的rt_debug.jar的位置在原来的jar包之前,如下图所示。

9f5d1aa1ef0452cde2cbffc23998302c.png

2.4.开始debug吧,你成功了!!

38ed2ee817661030251d453398a9cf4d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值