解决调试JDK源码时,不能查看变量的值问题

 更新时间:2017年06月12日 09:08:05   投稿:jingxian  
下面小编就为大家带来一篇解决调试JDK源码时,不能查看变量的值问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

前几天本来想以debug模式看一下JDK的源码,进入调试模式时才发现,根本看不到方法里面变量值的情况。为什么呢?JDK现在的版本中,编译过后,去除了里面的调试信息。解决办法是,编译那些类,使其带有调试信息,使用命令:javac -g

查看了一些相关资料,现将解决方法放到下面

1、在d:\的根目录下创建jdk7_src和jdk_debug目录。

2、在JDK_HOME目录下找到src.zip文件,并把它里面的文件解压到jdk7_src目录下,然后在解压后的目录中删除除了java、javax、org以外的其他目录。

3、把JDK_HOME\jre\lib下的rt.jar放到你的工作目录下,即d:\的根目录下(这样仅仅便于在命令行中不用指定大量的文件名)。

4、执行命令dir /B /S /X jdk7_src\*.java > filelist.txt 去创建需要编译的java文件列表,用于javac命令编译的输入源文件,dir命令相关参数说明,/B: 不输出额外的文件信息(没有标题信息或摘要),/S: 显示指定目录和所有子目录中的文件,/X: 显示为非 8.3 文件名产生的短名称。格式是 /N 的格式, 短名称插在长名称前面。如果没有短名称,在其位置则显示空白。

5、执行javac -J-Xms16m -J-Xmx1024m -sourcepath d:\jdk7_src -cp d:\rt.jar -d d:\jdk_debug -g @filelist.txt >> log.txt 2>&1 编译后的文件将放入jdk_debug文件夹,编译产生的日志将存到log.txt文件中。在日志文件中将看到大量的警告,但是没有错误信息。

6、进入jdk_debug目录执行命令jar cf0 rt_debug.jar *,将编译后的文件打包成rt_debug.jar包。

7、把新生成的jar包放到JDK_HOME\jre\lib\endorsed中(如果没有endorsed文件夹,则手动创建)。

说明:JDK_HOME表示JDK的安装路径,本文所有的命令都在在d:\下及其子目录下执行的。

简单点,也可以将我下面提供的JDK7的调试版本的rt_debug.jar放入endorsed文件夹中。

以上这篇解决调试JDK源码时,不能查看变量的值问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringSecurity自定义资源拦截规则及登录界面跳转问题

    SpringSecurity自定义资源拦截规则及登录界面跳转问题

    这篇文章主要介绍了SpringSecurity自定义资源拦截规则及登录界面跳转问题,我们想要自定义认证逻辑,就需要创建一些原来不存在的bean,这个时候就可以使@ConditionalOnMissingBean注解,本文给大家介绍的非常详细,需要的朋友参考下吧
    2023-12-12
  • Java 递归遍历实现linux tree命令方式

    Java 递归遍历实现linux tree命令方式

    这篇文章主要介绍了Java 递归遍历实现linux tree命令方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • mybatis @Intercepts的用法解读

    mybatis @Intercepts的用法解读

    这篇文章主要介绍了mybatis @Intercepts的用法解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Spring jpa和mybatis整合遇到的问题解析

    Spring jpa和mybatis整合遇到的问题解析

    有朋友说jpa相比mybatis太难用,多表联合的查询写起来也比较费劲,所以便加入了mybatis的支持,在配置jpa时遇到各种问题,需要修改相关配置文件,下面小编给大家分享下修改配置文件的思路,感兴趣的朋友参考下
    2016-10-10
  • SpringBoot之Controller的使用详解

    SpringBoot之Controller的使用详解

    本篇文章主要介绍了SpringBoot之Controller的使用详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-08-08
  • Java实现的数字签名算法RSA完整示例

    Java实现的数字签名算法RSA完整示例

    这篇文章主要介绍了Java实现的数字签名算法RSA,结合完整实例形式详细分析了RSA算法的相关概念、原理、实现方法及操作技巧,需要的朋友可以参考下
    2019-09-09
  • Java系统的高并发解决方法详解

    Java系统的高并发解决方法详解

    这篇文章主要介绍了Java系统的高并发解决方法,内容十分丰富,在这里分享给大家,需要的朋友可以参考。
    2017-09-09
  • SpringBoot项目使用yml文件链接数据库异常问题解决方案

    SpringBoot项目使用yml文件链接数据库异常问题解决方案

    在使用SpringBoot时,利用yml进行数据库连接配置需小心数据类型区分,如果用户名或密码是数字,必须用双引号包裹以识别为字符串,避免连接错误,特殊字符密码也应用引号包裹
    2024-10-10
  • springboot ehcache 配置使用方法代码详解

    springboot ehcache 配置使用方法代码详解

    EhCache是一个比较成熟的Java缓存框架,Springboot对ehcache的使用非常支持,所以在Springboot中只需做些配置就可使用,且使用方式也简易,今天给大家分享springboot ehcache 配置使用教程,一起看看吧
    2021-06-06
  • SpringBoot 内置工具类的使用

    SpringBoot 内置工具类的使用

    本文主要介绍了SpringBoot 内置工具类的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12

最新评论