解决Debug JDK source 无法查看局部变量的问题方案
一.问题阐述
首先我们要明白JDK source为什么在debug的时候无法观察局部变量,因为在jdk中,sun对rt.jar中的类编译时,去除了调试信息,这样在eclipse中就不能看到局部变量的值。这样的话,如果在debug的时候查看局部变量,就必须自己编译相应的源码使之拥有调试信息。
要达到这个目的,一是找网上人家已经编译好的版本,剩下的只能自己去编译。下面我们对于自己编译提供一个方法,希望对大家有所帮助,如果有什么问题,请留言。
二.解决方案
选择或创建你的工作目录,比如我选择:E:\
在你的工作目录中,创建文件夹jdk_src,用于存放源码;创建文件夹jdk_debug,用于输出编译结果。
从你的机器装jdk的地方找到src.zip,在你得JDK_HOME可以找到,比如我的在C:\Program Files\Java\jdk1.7.0_09目录下。然后把src解压到jdk_src目录下。
解压完后,选择你需要编译的内容,删除剩下的。一般选择如下的几个文件夹就可以了:java javax org 这三个目录就可以了啊
.从你得JDK_HOMME\jre\lib中复制到你的工作目录中,这样做的目的可以让你减少在命令行中输入的文件名。
.执行如下这条命令:
dir /B /S /X jdk_src\*.java > filelist.txt
创建一个叫做filelist.txt的文件,这个文件存放了所有你将要编译的类的名称。
执行如下的命令:
javac -J-Xms16m -J-Xmx1024m -sourcepath e:\jdk_src -cp e:\rt.jar -d e:\jdk_debug -g @filelist.txt >> log.txt 2>&1
这条命令将要编译所有你指定的文件,并把编译结果输出到jdk_debug目录中,同时产生log.txt日记文件。这个日记文件记录着编译警告,但是没有错误。
进入到jdk_debug目录中,输入如下命令:
jar cf0 rt_debug.jar *
这个命令可以生成我们需要的rt.jar带编译信息的jar包。
把这个生成的rt_debug.jar包复制到JDK_HOME\jre\lib\endorsed。如果没有endorsed目录,自己创建一下。
如果你是在eclipse中debug的。点击Window->Installed JRES,选择相应的JDK,点击Edit,r然后选择点击Add External jars,选择我们步骤9中目中的rt_debug.jar,就可以了。现在完成了所有的步骤了,赶快尝试debug一下,如果可以查看局部变量了,那么恭喜你成功了。
————————————————
版权声明:本文为CSDN博主「appleprince88」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/appleprince88/article/details/21873807
解决Debug JDK source 无法查看局部变量的问题方案的更多相关文章
- 【原】解决Debug JDK source 无法查看局部变量的问题方案(重新编译rt.jar包)
一.问题阐述 首先我们要明白JDK source为什么在debug的时候无法观察局部变量,因为在jdk中,sun对rt.jar中的类编译时,去除了调试信息,这样在eclipse中就不能看到局部变量的值 ...
- debug jdk source can't watch variable what it is
https://www.cnblogs.com/shuaiqing/p/7525841.html https://stackoverflow.com/questions/18255474/debug- ...
- java debug jdk(转载)
Debug info unavailable 解决之道 从事Java的小伙伴们估计都有断点代码的习惯,可以很方便的查看运行期代码中一些变量的值. 但是JDK中有些类你会发现是无法断点的,即使你在IDE ...
- Debug JDK变量显形
本文面向的朋友 本文主要说明在使用Eclipse Debug JDK时,看不到变量值的解决办法. 如果您看到上面绿色字体表示不敢兴趣,请一定果断back,如果您不爽,请在下面使劲的拍. Debug J ...
- 在Eclipse下debug 出现Source not found for ...
在Eclipse下debug 出现Source not found for ... 在Eclipse下调试Servlet出现了Source not found for XxxAction.execut ...
- 转载:Source Insight查看ARM汇编源程序 && 高亮显示程序 && Source Insight打开project窗口出错
(1)Source Insight查看ARM汇编源程序.做ARM嵌入式开发时,有时得整汇编代码,但在SIS里建立PROJECT并ADD TREE的时候,根据默认设置并不会把该TREE里面所有汇编文件都 ...
- catalina.sh设置JAVA_HOME后还无法解决更换JDK有关问题
catalina.sh设置JAVA_HOME后还无法解决更换JDK问题 表示linux已经安装默认的JDK,需要查找配置文件,更换JDK路径为指定的路径 在root用户下 使用echo $PATH 查 ...
- 解决修改JDK环境变量不生效方法
解决修改JDK环境变量不生效方法 brupsuit1.7在安装时一直报错jdk版本低,我就将jdk1.6版本的卸了换成1.8的,结果修改了环境变量但它一直给我不生效.... 1.之前版本未卸载干净 进 ...
- 3 Ways of JDK Source Code Attachment in Eclipse---reference
You wanna look at a JVM class while you are coding and you cannot. Here is the solution. First of al ...
随机推荐
- 深入探究JVM(1) - Java的内存区域解析
http://blog.csdn.net/sczyh22/article/details/46652901<br>Java 虚拟机在执行Java程序的时候会把它管理的内存区域划为几部分,这 ...
- 【初识TypeScript】 配置环境后运行Hello World编译报错.
第一次接触TypeScript,配置好环境后, 发现连编写个最基本的Hello World都报错,代码如下: const hello:string = "Hello World!" ...
- Laravel 的Artisan 命令学习
Laravel 的Artisan 命令学习 Artisan 是 Laravel 提供的 CLI(命令行接口),它提供了非常多实用的命令来帮助我们开发 Laravel 应用.前面我们已使用过 Artis ...
- Uncaught TypeError: Cannot read property 'length' of null错误怎么处理?
Uncaught TypeError: Cannot read property 'length' of null 错误怎么处理? 1.可能是返回的datagrid数据格式有问题,比如{"t ...
- 解决Firefox已阻止运行早期版本Adobe Flash
解决Firefox已阻止运行早期版本Adobe Flash 类别 [随笔分类]web 解决Firefox已阻止运行早期版本Adobe Flash 最近火狐浏览器不知抽什么风, ...
- 通过HookNtCreateSection 动态监控驱动sys、动态链接库dll、可执行文件exe加载
[cpp] view plaincopyprint? /* windows2003 x86/x64 window7 x86 windows2008 R2 x64测试通过 */ #include < ...
- a daemon 守护进程
w Cron and Crontab usage and exampleshttps://www.pantz.org/software/cron/croninfo.html
- Java 与 C++ 的比较
参考 Java 中,一切皆是类 Java 中,所有数据或方法都要放在类中.如果想获得与全局函数等价的功能,可将static方法和static数据放在类里.而 C++ 中有 struct 结构.enum ...
- Java提取文本文档中的所有网址(小案例介绍正则基础知识)
正则表达式基础以及Java中使用正则查找 定义: 正则表达式是一些用来匹配和处理文本的字符串 正则的基础(先大致了解下) 1. 正则表达式的作用 查找特定的信息(搜索) 替换一些文本(替换) 2. 正 ...
- 通过FSDataOutputStream向HDFS上写数据
FSDataOutputStream,这个类重载了很多write方法,用于写入很多类型的数据:比如字节数组,long,int,char等等. 像FSDataInputStream一样,要获得FSDat ...