您的位置:首页 > 编程语言 > Java开发

eclipse 调试jdk源码class文件,变量无法显示问题

2018-08-21 12:06 1026 查看
调试jdk源码时,变量无法显示提示说“key cannot be resolved to a variable”,为什么呢?因为在JDK中,sun对
rt.jar
中的类编译时,去除了调试信息。



解决方法如下

注意:如果你要编译jdk1.8的源码,如果与系统环境变量jdk版本不一致,会产生如下错误

错误: 程序包已存在于另一个模块中: java.desktop package java.applet;

1.在你的
D:
盘新建
jdk1.8_source
文件夹(我的目录
D:\jdk\jdk1.8_source
),然后在文件夹里面分别创建两个文件夹
jdk_src
(存放源码)和
jdk_debug
(存放编译结果文件)。

2.从
%JAVA_HOME%
路径下找到
src.zip
源码源码压缩包,解压至
D:/jdk/jdk_src
目录中,并只保留
java
javax
,
org
三个文件夹。

3.从
%JAVA_HOME%\jre\lib
找到
rt.jar
,将它拷贝到
D:/jdk
文件夹。

4.打开DOS命令窗口,用命令
cd
命令进入
D:/jdk
文件夹,然后执行命令
dir /B /S /X .\jdk_src\*.java > .\filelist.txt
,完成后会在
D:/jdk
目录生成
filelist.txt
文件,里面为待编译的文件路径
*/*.java


5.执行命令
javac -J-Xms16m -J-Xmx1024m -sourcepath .\jdk_src -cp .\rt.jar -d .\jdk_debug -g @.\filelist.txt >> .\log.txt 2>&1
会编译
filelist.txt
文件中列出的
*.java
源文件,编译的
*.class
文件会放入
D:/jdk/jdk_debug
文件夹,同时编译过程中会在
D:/jdk
生成
log.txt
文件。

6.执行cd命令切换到
D:/jdk/jdk_dug
,然后执行
jar cf0 rt_debug.jar *
*.class
文件打成
jar
,打包完成后会在
D:/jdk/jdk_debug
目录中生成
rt_debug.jar


7.把这个生成的
rt_debug.jar
包复制到
%JDK_HOME%\jre\lib\endorsed
下。如果没有endorsed目录,自己创建一下。

8.在eclipse里面找到
Window->Installed JRES
,选择
jdk
,点击
Edit
,然后点击
Add External jars
,选择刚才创建的
rt_debug.jar
导入,然后把
rt_debug.jar
移动到rt.jar的前面,最后选中
rt_debug.jar
,点击
Source Attachment
选择
%JAVA_HOME%/jdk/src.zip
添加源文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: