用eclipse去debug jdk源码,默认情况下是看不到变量的。这是因为在jdk中,sun对rt.jar中的类编译时,去除了调试信息,这样在eclipse中就不能看到局部变量的值。这样的话,如果在debug的时候查看局部变量,就必须自己编译相应的源码使之拥有调试信息。
之前看到网上有方法重新编译rt.jar,然后替换原来的就可以了jdk
6和7使用的方法这方法对jdk8之前是可以的,但是jdk8之后编译各种报错,于是就换种方法直接编译源码
- 解压JAVA_HOME下的src.zip,并导入eclipse中。
- 删除com\sun\java\swing,javax\swing两个包,以及com\sun\source\util\JavacTask.java、com\sun\source\util\Plugin.java。
- 导出export->rt_debug.jar
- 把这个rt_debug.jar包复制到JDK_HOME\jre\lib\endorsed。如果没有endorsed目录,自己创建一下。
搞定,可以用了。