官网下载的jdk安装包中的rt.jar不包含调试信息,所以导致此问题产生。
实验环境
- jdk1.8.0_202
- eclipse 2018-09
- windows 10
- 已配置好 java 环境变量(需要使用 cmd 命令)
解决方案
-
以
d盘
根目录为例,在d盘
根目录创建jdk_src
和jdk_debug
两个文件夹 -
将你电脑上安装的
jdk 根目录
下的src.zip
源码压缩包解压到jdk_src
文件夹中 -
删除不必要的目录,保留
java、javax、org
三个目录即可 -
将
jdk 根目录\jre\lib
下的rt.jar
复制到d盘
根目录下 -
在
d盘
根目录下执行命令:dir /B /S /X jdk_src\*.java > filelist.txt
创建一个叫做filelist.txt的文件,这个文件存放了所有你将要编译的类的名称。
-
继续执行命令
javac -J-Xms16m -J-Xmx1024m -sourcepath d:\jdk_src-cp d:\rt.jar -d d:\jdk_debug-g @filelist.txt >> log.txt 2>&1
这条命令将要编译所有你指定的文件,并把编译结果输出到 jdk_debug 目录中,同时产生 log.txt 日记文件。这个日记文件记录着编译警告,但是没有错误。
-
进入
jdk_debug
目录,运行以下命令jar cf0 rt_debug.jar *
将生成携带调试信息的
rt_debug.jar
包 -
将
rt_debug.jar
包复制到jdk 根目录\jre\lib\endorsed
下,如果没有endorsed
目录,手动创建即可。 -
重启
eclipse
(需要将此 jdk 设置为 eclipse 的默认 jdk),自己调试下试试吧
生成的 rt_debug.jar(jdk1.8.0_202)
https://download.csdn.net/download/qq_33468239/11314984
本来想1分的,结果现在资源默认5分
参考原文
https://stackoverflow.com/questions/18255474/debug-jdk-source-cant-watch-variable-what-it-is.
第一个回答