Eclipse调试JDK源码看不到变量
问题效果图:
解决后的效果:
具体步骤:
1.制作可调试的rt.jar包
1.1 .在D盘新建jdk7_src及jdk7_rt-debug两个文件夹
1.2.复制JDK源码
将环境变量中配置的java_home地址或者将用的外部JDK安装目录下的src.zip
复制到D:/jdk7_src,解压.效果如下图
1.3.选择要编译的源码
原文中说,留下java,javax,org三个文件夹就足够了,其他都可以删除。
我只是把swing的内容删除了,其他都留下了。大伙可以随意。
swing包目录位置:com\sun\java\swing,javax\swing
注意:不删除这两个的话,编译的时候会报错
1.4.得到要处理的java文件名
命令及效果图如下:
要查看一下,自动生成的filelist.txt中是否有内容哦,没有数据的话下面的操作是没用的。
- D:
- cd D:\jdk7_src
- dir /B /S /X *.java > filelist.txt
1.5.复制jre/lib/rt.jar
把JDK安装目录(复制src.zip的那个目录)下jre/lib下的rt.jar复制到jdk7_src目录下
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
这一步的时候很多会报错
命令加上-Xlint:deprecation -Xlint:unchecked
如果有错,一般是Swing包报的,删除com\sun\java\swing,javax\swing 重新执行命令生成filelist.txt文件
1.7.将这些文件打包成Jar
命令和效果如下图
- cd ..
- cd jdk7_rt-debug
- jar cf0 rt_debug.jar *
2.使用可调试的rt.jar
2.1.把rt_debug.jar放入JDK中
放入java_home/jre/lib/endorsed目录
2.2.将rt_debug.jar加入Eclipse使用的JDK中
2.3.添加rt_debug.jar的源码包
2.4.开始debug吧,你成功了!!