自从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中遨游了。