jdk學習之如何調試jdk

 

 

       自從sun被oracle收購後,在oracle下載的jdk使用F5進入調試jdk的方法就不行了,這對於想看jdk的源碼的小夥伴是一個暴擊(oracle在編譯rt.jar時去除了調試信息);java

這不得不鼻屎oracle違背了java開源的初衷,雖然oracle去除了rt.jar的調試信息,咱們仍是能夠下載帶調試信息的rt.jar去替換,oracle

固然咱們本身也能夠生成帶調試信息的rt.jar,如下是生成步驟及使用方法;eclipse

  一、在c盤建立目錄  C:\aiqing\tools\debugjdk\rt_debug;(這裏在哪一個盤符建立目錄及目錄名是什麼沒限制,要與下面的步驟對應就ok)spa

  二、把JAVA_HOME\jre\lib下的rt.jar複製到rt_debug目錄解壓;命令行

  

  三、把JAVA_HOME\src.zip複製到rt_debug目錄解壓(src.zip就是jdk的源碼)debug

  四、進入解壓後的src目錄,保留java、javax、org三個目錄,其餘刪除調試

  五、在src目錄中打開cmd命令行執行dir /B /S /X  C:\aiqing\tools\debugjdk\rt_debug\src\*.java > filelist.txt (這一步建立一個叫作filelist.txt的文件,這個文件存放了全部你將要編譯的類的名稱)blog

  六、建立C:\aiqing\tools\debugjdk\debug_rt\classes文件夾 (java、Javax、org三個源代碼編譯後存放路徑)ip

  七、編譯src下的源代碼 javac -J-Xms16m -J-Xmx1024m -sourcepath C:\aiqing\tools\debugjdk\rt_debug\src -cp C:\aiqing\tools\debugjdk\rt_debug\rt.jar  -d C:\aiqing\tools\debugjdk\debug_rt\classes -g @filelist.txtcmd

  八、cmd進入C:\aiqing\tools\debugjdk\debug_rt\classes目錄,執行: jar cf0 rt_debug.jar * ;這步會生成一個rt_debug.jar

  

  九、把這個rt_debug.jar包複製到JAVA_HOME\jre\lib下

  十、把JAVA_HOME加入到eclipse中,eclipse點擊window->preferences->Installed JREs,選擇相應JDK,而後點擊Add External JARs...,選擇咱們步驟9中添加的rt_debug.jar(位置在rt.jar之上)。

  

  十一、連接rt_debug.jar的源碼JAVA_HOME\src.zip(rt_debug也是用的src.zip中的jdk源碼)

  

  十二、ok,接下去就能夠在jdk中遨遊了。

  

  

相關文章
相關標籤/搜索