背景





4. 應該就大功告成了 。
rt.jar
中的類編譯時,去除了調試信息。那么是否有解決辦法呢?答案是肯定的。
解決方案
1.在你的D:盤新建jdk文件夾,然后在文件夾里面分別創建兩個文件夾jdk_src(存放源碼)和jdk_debug(存放編譯結果文件)。
2.從%JAVA_HOME%路徑下找到src.zip源碼源碼壓縮包,解壓至D:/jdk/jdk_src目錄中,並只保留java,javax,org三個文件夾。
3.從%JAVA_HOME%\jre\lib找到rt.jar,將它拷貝到D:/jdk文件夾。
4.打開DOS命令窗口,用命令cd命令進入D:/jdk文件夾,然后執行命令 dir /B /S /X .\jdk_src\*.java > .\filelist.txt 完成后會在D:/jdk目錄生成filelist.txt文件,里面為待編譯的文件路徑*/*.java。
5.執行命令 javac -J-Xms16m -J-Xmx1024m -sourcepath .\jdk_src -cp .\rt.jar -d .\jdk_debug -g @.\filelist.txt >> .\log.txt 2>&1 會編譯filelist.txt文件中列出的*.java源文件,編譯的*.class文件會放入D:/jdk/jdk_debug文件夾,同時編譯過程中會在D:/jdk生成log.txt文件。
6.執行cd命令切換到D:/jdk/jdk_debug,然后執行 jar cf0 rt_debug.jar * 將*.class文件打成jar,打包完成后會在D:/jdk/jdk_debug目錄中生成rt_debug.jar。
7.把這個生成的rt_debug.jar包復制到%JDK_HOME%\jre\lib\endorsed下。如果沒有endorsed目錄,自己創建一下。
8.在eclipse里面找到Window->Installed JRES,選擇jdk,點擊Edit,然后點擊Add External jars,選擇剛才創建的rt_debug.jar導入,然后把rt_debug.jar移動到rt.jar的前面,最后選中rt_debug.jar,點擊Source Attachment選擇%JAVA_HOME%/jdk/src.zip添加源文件,並把rt.jar的源文件刪除(不用刪除,本人測試不刪除可以成功),最最后,重啟eclipse。
其實這里把rt.jar
的源文件可以保留,不用刪除,本人保留rt.jar
的源文件測試后沒問題