首頁  >  文章  >  Java  >  調試JDK源碼時,不能查看變數值怎麼解決?

調試JDK源碼時,不能查看變數值怎麼解決?

零下一度
零下一度原創
2017-06-26 14:31:351513瀏覽

前幾天本來想以debug模式看一下JDK的源碼,進入調試模式時才發現,根本看不到方法裡面變數值的情況。為什麼呢? JDK現在的版本中,編譯過後,去除了裡面的偵錯資訊。解決辦法是,編譯那些類,使其帶有調試信息,使用命令:javac -g

#查看了一些相關資料,現將解決方法放到下面

  1. d:\的根目錄下建立jdk7_srcjdk_debug目錄。

  2. JDK_HOME目錄下找到src.zip文件,並把它裡面的文件解壓縮到jdk7_src目錄下,然後在解壓縮後的目錄中刪除除了java、javax、org以外的其他目錄。

  3. JDK_HOME\jre\lib下的rt.jar放到你的工作目錄下,也就是d:\的根目錄下(這樣僅僅便於在命令列中不用指定大量的檔案名稱)。

  4. 執行指令dir /B /S /X jdk7_src\*.java > filelist.txt 去建立需要編譯的java檔案列表,用於javac指令編譯的輸入原始文件,dir命令相關參數說明,/B: 不輸出額外的文件資訊(沒有標題資訊或摘要),/S: 顯示指定目錄和所有子目錄中的文件,/X: 顯示為非8.3 檔案名稱產生的短名稱。格式是 /N 的格式, 短名稱插在長名前面。如果沒有短名稱,在其位置則顯示空白。

  5. 執行javac -J-Xms16m -J-Xmx1024m -sourcepath d:\jdk7_src -cp d:\rt.jar -d d:\jdk_debug -g @filelist.txt >> log.txt 2>&1 編譯後的檔案將放入jdk_debug資料夾,編譯產生的日誌將會儲存到log.txt檔案中。在日誌檔案中將看到大量的警告,但是沒有錯誤訊息。

  6. 進入jdk_debug目錄執行指令jar cf0 rt_debug.jar *,將編譯後的檔案打包成rt_debug.jar包。

  7. 把新產生的jar套件放到JDK_HOME\jre\lib\endorsed中(如果沒有endorsed資料夾,則手動建立)。

  說明:JDK_HOME表示JDK的安裝路徑,本文所有的指令都在d:\下及其子目錄下執行的。

簡單點,也可以將我下面提供的JDK7的偵錯版本的rt_debug.jar放入endorsed資料夾中。

參考資料

  • debug jdk source can't watch variable what it is   --stackoverflow 

  • #Java Endorsed Standards Override Mechanism      --java guides        

  • rt_debug.jar下載

 

############ ###

以上是調試JDK源碼時,不能查看變數值怎麼解決?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn