1. 程式人生 > 實用技巧 >Java在Eclipse中除錯無法獲取JDK原始碼變數的解決辦法

Java在Eclipse中除錯無法獲取JDK原始碼變數的解決辦法

1.問題描述

在Eclipse中除錯jdk原始碼時,變數無法顯示並提示說“key cannot be resolved to a variable”。

這是因為在JDK中,sun對rt.jar中的類編譯時,去除了除錯資訊。

2.解決方法

1.在D盤新建資料夾【 jdk 】,然後在資料夾裡面分別建立兩個資料夾【jdk_src】(原始碼)和【jdk_debug 】(編譯檔案)。

2.從%JAVA_HOME%路徑下找到【src.zip】原始碼原始碼壓縮包,解壓至D:/jdk/jdk_src目錄中,並只保留【javajavax,org】三個資料夾。

3.從%JAVA_HOME%\jre\lib

找到r【t.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_dug,然後執行命令 【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新增原始檔。

3.操作截圖

圖片來源於https://blog.csdn.net/u010407050/article/details/76690478

參考https://blog.csdn.net/u010407050/article/details/76690478