1.背景

  eclipse调试jdk自带的rt.jar中的代码时,不能看到方法参数或局部变量的值。

  这是因为oracle发布的jdk正式版中去掉了代码中的调试信息。所以要想在平时的工作中调试rt.jar中的代码,就必须要重新编译rt.jar。


2.步骤

  1. 创建目录:rt_debug(如: F:\rt_debug


  2. JAVA_HOME/src.zip复制到rt_debug中并解压,并只保留javajavaxorg三个目录(三个常用的完全够了)


  3. JAVA_HOME/jre/lib/rt.jar复制到rt_debug


  4. DOS中:cd  F:\rt_debug


  5. dir /B /S /X *.java > files.txt(在rt_debug目录下创建files.txt,保存所有的.java文件)

  6. 创建F:\rt_debug\classes目录

  7. DOS中:javac -J-Xms16m -J-Xmx1024m -sourcepath . -cp ./rt.jar -d ./classes -g @files.txt(重新编译,并放入classes目录中)

  8. DOS中:cd classes

  9. DOS中:jar cf0 rt_debug.jar *(把编译后的文件重新打成jar包)

  10. 把rt_debug.jar放入JAVA_HOME/jre/lib中

  11. eclipse中选择Installed JRES,选择相应的JDK,点击Edit,然后选择点击Add External jars,选择rt_debug.jar,UP到rt.jar之上