解決調(diào)試JDK源碼時,不能查看變量的值問題
前幾天本來想以debug模式看一下JDK的源碼,進入調(diào)試模式時才發(fā)現(xiàn),根本看不到方法里面變量值的情況。為什么呢?JDK現(xiàn)在的版本中,編譯過后,去除了里面的調(diào)試信息。解決辦法是,編譯那些類,使其帶有調(diào)試信息,使用命令:javac -g
查看了一些相關(guān)資料,現(xiàn)將解決方法放到下面
1、在d:\的根目錄下創(chuàng)建jdk7_src和jdk_debug目錄。
2、在JDK_HOME目錄下找到src.zip文件,并把它里面的文件解壓到jdk7_src目錄下,然后在解壓后的目錄中刪除除了java、javax、org以外的其他目錄。
3、把JDK_HOME\jre\lib下的rt.jar放到你的工作目錄下,即d:\的根目錄下(這樣僅僅便于在命令行中不用指定大量的文件名)。
4、執(zhí)行命令dir /B /S /X jdk7_src\*.java > filelist.txt 去創(chuàng)建需要編譯的java文件列表,用于javac命令編譯的輸入源文件,dir命令相關(guān)參數(shù)說明,/B: 不輸出額外的文件信息(沒有標題信息或摘要),/S: 顯示指定目錄和所有子目錄中的文件,/X: 顯示為非 8.3 文件名產(chǎn)生的短名稱。格式是 /N 的格式, 短名稱插在長名稱前面。如果沒有短名稱,在其位置則顯示空白。
5、執(zhí)行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文件夾,編譯產(chǎn)生的日志將存到log.txt文件中。在日志文件中將看到大量的警告,但是沒有錯誤信息。
6、進入jdk_debug目錄執(zhí)行命令jar cf0 rt_debug.jar *,將編譯后的文件打包成rt_debug.jar包。
7、把新生成的jar包放到JDK_HOME\jre\lib\endorsed中(如果沒有endorsed文件夾,則手動創(chuàng)建)。
說明:JDK_HOME表示JDK的安裝路徑,本文所有的命令都在在d:\下及其子目錄下執(zhí)行的。
簡單點,也可以將我下面提供的JDK7的調(diào)試版本的rt_debug.jar放入endorsed文件夾中。
以上這篇解決調(diào)試JDK源碼時,不能查看變量的值問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringSecurity自定義資源攔截規(guī)則及登錄界面跳轉(zhuǎn)問題
這篇文章主要介紹了SpringSecurity自定義資源攔截規(guī)則及登錄界面跳轉(zhuǎn)問題,我們想要自定義認證邏輯,就需要創(chuàng)建一些原來不存在的bean,這個時候就可以使@ConditionalOnMissingBean注解,本文給大家介紹的非常詳細,需要的朋友參考下吧2023-12-12
Java 遞歸遍歷實現(xiàn)linux tree命令方式
這篇文章主要介紹了Java 遞歸遍歷實現(xiàn)linux tree命令方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
Java實現(xiàn)的數(shù)字簽名算法RSA完整示例
這篇文章主要介紹了Java實現(xiàn)的數(shù)字簽名算法RSA,結(jié)合完整實例形式詳細分析了RSA算法的相關(guān)概念、原理、實現(xiàn)方法及操作技巧,需要的朋友可以參考下2019-09-09
SpringBoot項目使用yml文件鏈接數(shù)據(jù)庫異常問題解決方案
在使用SpringBoot時,利用yml進行數(shù)據(jù)庫連接配置需小心數(shù)據(jù)類型區(qū)分,如果用戶名或密碼是數(shù)字,必須用雙引號包裹以識別為字符串,避免連接錯誤,特殊字符密碼也應用引號包裹2024-10-10

