怎么对jdk核心包进行跟踪调试,并查看调试中的变量值
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/
转载自: https://bijian1013.iteye.com/blog/2302520
怎么对jdk核心包进行跟踪调试,并查看调试中的变量值相关推荐
- VC代码的编写和调试---编写易于调试的VC代码
转自:http://www.vcgood.com/forum_posts.asp?TID=1692&PN=1 一 程序的设计 要避免错误,首先要从好的设计开始.对于程序的设计,需考虑到程序的两 ...
- JDK核心源码深入剖析(synchronized和ConcurrentHashMap)
JDK核心源码深入剖析(synchronized和ConcurrentHashMap) JDK核心源码深入剖析 1 同步锁synchronized追本溯源 1.1 synchronized场景回顾 1 ...
- JAVA_Java常用核心包(概念)
20150802 Created By BaoXinjian 一.Java常用包 Java各种核心包 1. java.lang: java 的核心类库,包含了运行java 程序必不可少的系统类,如基本 ...
- Vert.x学习笔记(一) Vert.x 核心包
Vert.x是一个事件驱动的JVM上的框架,可以帮助我们构建现代.灵活.可扩展的程序.Vert.x有多种语言的版本,可以用在Java.Kotlin.Scala.Groovy.Ruby等语言上.当然现在 ...
- 帝国cms万能通用api二次开发核心包使用说明
简介 帝国cms万能通用api二次开发核心包是一款可以用地对帝国cms进行二次开发,可进行开发微信小程序.百度小程序.支付宝小程序.轻应用.苹果ios安卓android.其他营销插件的二次开发核心包. ...
- gnujaxp.jar与struts2中的xwork核心包冲突
在做项目的时候,项目启动报了以下的错误 Caught Exception while registering Interceptor class org.apache.struts2.intercep ...
- 1071svm函数 r语言_R语言机器学习之核心包e1071 - 数据分析
R语言有很多包可以做机器学习(Machine Learning)的任务.机器学习的任务主要有有监督的学习方式和无监督的学习方式. 有监督学习:在正确结果指导下的学习方式,若是正确结果是定性的,属于分类 ...
- java加密与解密-核心包中的部分API(2)
主要是介绍java安全框架的核心包中的部分API作用 java.Security包 java.security包主要用于为安全框架提供类和接口 Provider类 Provider类实现了java ...
- springside4配置环境时无法下载到两个核心包
最近在搭建 springside4开发环境,配置环境时无法下载到两个核心包: 查看官方文档,发现江南白衣已经对这个问题做了重大提示"要自己build" 先build test 里的 ...
最新文章
- pyinstaller打包生成的exe文件(并设置运行时静默)
- 你不懂的JS学习笔记(作用域和闭包)
- linux 批量处理 dos2unix
- 算法经典书籍--算法设计与分析基础
- java 清空jframe_java – 在新游戏中清除我的JFrame和JPanel
- linux如何使用物理内存_10 张图解再谈 Linux 物理内存和虚拟内存
- maven 如何给web项目添加jar包依赖
- python的史蒂芬加速迭代法_如何将Pandas迭代速度加快150倍?
- 电脑计算机d盘有用吗,d盘不见了,教您电脑d盘不见了怎么解决
- android layoutparams,Android LayoutParams用法解析
- 腾控Multiprog 使用问题 (持续更新)
- 【材料力学】基于Matlab APP Designer 开发的绘制静定梁剪力、弯矩与挠曲线的软件
- 英语在线教育机构争战AI风口,为何雷声大雨点小?
- [DAX] IF函数
- Wangle源码分析:Service
- HTML中<meta>标签的name属性都有哪些——标准元数据名称
- 逻辑思维语音01——麦当劳
- 你是如何学习Java的?
- 2018-2019-2 20175227张雪莹《Java程序设计》实验三 《敏捷开发与XP实践》
- [-7170]:Bakres failed to connect DMAP