Chinaunix首页 | 论坛 | 博客
  • 博客访问: 185797
  • 博文数量: 21
  • 博客积分: 1395
  • 博客等级: 中尉
  • 技术积分: 321
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-07 13:57
文章分类

全部博文(21)

文章存档

2012年(1)

2011年(4)

2010年(12)

2009年(2)

2008年(2)

我的朋友

分类: Java

2011-03-28 11:07:01

用Eclipse Debug,当跟踪进jdk api里时(比如javax.swing包里的类),无法查看某些local filed的值。这是因为jdk里的代码在打包时删除了一些用于调试的信息,以减小安装包的体积。不过可以通过重新编译jdk源代码来恢复此功能。

1.在Eclipse里新建一个java工程,把jdk_home/src.zip解压缩,复制java,javax两个目录的源代码到新建工程的src目录下。

2.build整个工程。如果build报Access restriction错误,是因为源代码里调用了com.sun等包的内容。可设置eclipse忽略这些错误。修改如下:

Windows -> Preferences -> Java -> Compiler -> Errors/Warnings -> Deprecated and trstricted API -> Forbidden reference (access rules): -> change to warning

3.可能还有个别错误,直接删除报错的源文件。

4.将编译得到的.class文件替换java_home/jre/lib/rt.jar文件里的.class文件。(用winrar打开rt.jar,直接把生成的java,javax包拖进去)。

重启eclipse。现在调试时,跟踪到jdk api里的代码时,可以查看到相关的variable的信息了。

阅读(6069) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~