自從sun被oracle收購后,在oracle下載的jdk使用F5進入調試jdk的方法就不行了,這對於想看jdk的源碼的小伙伴是一個暴擊(oracle在編譯rt.jar時去除了調試信息);
這不得不鼻屎oracle違背了java開源的初衷,雖然oracle去除了rt.jar的調試信息,我們還是可以下載帶調試信息的rt.jar去替換,
當然我們自己也可以生成帶調試信息的rt.jar,以下是生成步驟及使用方法;
1、在c盤創建目錄 C:\aiqing\tools\debugjdk\rt_debug;(這里在哪個盤符創建目錄及目錄名是什么沒限制,要與下面的步驟對應就ok)
2、把JAVA_HOME\jre\lib下的rt.jar復制到rt_debug目錄解壓;
3、把JAVA_HOME\src.zip復制到rt_debug目錄解壓(src.zip就是jdk的源碼)
4、進入解壓后的src目錄,保留java、javax、org三個目錄,其他刪除
5、在src目錄中打開cmd命令行執行dir /B /S /X C:\aiqing\tools\debugjdk\rt_debug\src\*.java > filelist.txt (這一步創建一個叫做filelist.txt的文件,這個文件存放了所有你將要編譯的類的名稱)
6、創建C:\aiqing\tools\debugjdk\debug_rt\classes文件夾 (java、Javax、org三個源代碼編譯后存放路徑)
7、編譯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.txt
8、cmd進入C:\aiqing\tools\debugjdk\debug_rt\classes目錄,執行: jar cf0 rt_debug.jar * ;這步會生成一個rt_debug.jar
9、把這個rt_debug.jar包復制到JAVA_HOME\jre\lib下
10、把JAVA_HOME加入到eclipse中,eclipse點擊window->preferences->Installed JREs,選擇相應JDK,然后點擊Add External JARs...,選擇我們步驟9中添加的rt_debug.jar(位置在rt.jar之上)。
11、鏈接rt_debug.jar的源碼JAVA_HOME\src.zip(rt_debug也是用的src.zip中的jdk源碼)
12、ok,接下去就可以在jdk中遨游了。