怎么对jdk核心包进行跟踪调试,并查看调试中的变量值

本文详细介绍了如何解决Java开发者在调试JDK源码时遇到的两个常见问题:一是在查看rt.jar中的变量时遇到的困难;二是sun.*包中的类缺乏API文档及源码。解决方案包括重新编译src.zip来增强调试能力,以及通过下载OpenJDK源码并整合至自定义JDK工程中以获取完整源码。文章提供了具体的操作步骤和资源链接,帮助开发者轻松解决这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        java是一门开源的程序设计语言,喜欢研究源码的java开发者总会忍不住debug一下jdk源码。虽然官方的jdk自带了源码包src.zip,然而却存在如下两个问题。

        a.debug时查看变量十分麻烦

        b.sun.*包中的类没有提供API文档及源码

        如何解决这两个问题呢?

一.debug时查看rt.jar中的变量

        因为oracle提供的jre中rt.jar不带debug信息:orcale在编译src时使用了 javac -g:none,意思是不带任何调试信息,这样可以减小rt.jar的大小,因此即使rt.jar包的source attachement指定了jdk安装包下的src.zip,也不便于调试,会出现诸如不能查看调试时的变量等问题。若想正常调试jdk,就只能重新编译src.zip,下面介绍下编译src.zip的方法。

1.在eclipse中新建一个java项目"jdk",然后在src目录上导入"Archive File",选择源码src.zip导入,导完目录结构如下(网上有说不用管报错,实际上这里的报错一般都是一些转型的问题,直接修复即可)


2.右键项目export...,然后导出为jar包,起名为rt_debug.jar:



3.修改eclipse的jre设置,将rt_debug.jar添加到jre中,并移动到最前面


4.最后再查看debug变量,可以看到变量值了




二.sun.*包中的类没有提供API文档及源码

        我只能想到从Open JDK官网下载Open JDK源码,并从中获取sun源码包,加到我创建的jdk工程中并修复报错,然后再导出为jar包(接下来的步骤同debug时查看rt.jar中的变量一样)。

Open JDK源码包下载地址:

        Open JDK6:http://download.java.net/openjdk/jdk6/

        Open JDK7:http://download.java.net/openjdk/jdk7/

        Open JDK8:http://download.java.net/openjdk/jdk8/

单个查看源码及javadoc地址:http://www.docjar.com/html/api/sun/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值