轉:http://blog.csdn.net/cherrycheng_/article/details/51004386
原英文地址:http://stackoverflow.com/questions/18255474/debug-jdk-source-cant-watch-variable-what-it-is
問題效果圖:
解決后的效果:
具體步驟:
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 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
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的源碼包
注意:若原來的JRE目錄下已經存在了rt.jar包,則要將新編譯的rt_debug.jar的位置在原來的jar包之前,如下圖所示。