jdk学习之如何调试jdk
自从sun被oracle收购后,在oracle下载的jdk使用F5进入调试jdk的方法就不行了,这对于想看jdk的源码的小伙伴是一个暴击(oracle在编译rt.jar时去除了调试信息);
这不得不鼻屎oracle违背了java开源的初衷,虽然oracle去除了rt.jar的调试信息,我们还是可以下载带调试信息的rt.jar去替换,
当然我们自己也可以生成带调试信息的rt.jar,以下是生成步骤及使用方法;
1、在c盘创建目录 C:\aiqing\tools\debugjdk\rt_debug;(这里在哪个盘符创建目录及目录名是什么没限制,要与下面的步骤对应就ok)
2、把JAVA_HOME\jre\lib下的rt.jar复制到rt_debug目录解压;

3、把JAVA_HOME\src.zip复制到rt_debug目录解压(src.zip就是jdk的源码)
4、进入解压后的src目录,保留java、javax、org三个目录,其他删除
5、在src目录中打开cmd命令行执行dir /B /S /X C:\aiqing\tools\debugjdk\rt_debug\src\*.java > filelist.txt (这一步创建一个叫做filelist.txt的文件,这个文件存放了所有你将要编译的类的名称)
6、创建C:\aiqing\tools\debugjdk\debug_rt\classes文件夹 (java、Javax、org三个源代码编译后存放路径)
7、编译src下的源代码 javac -J-Xms16m -J-Xmx1024m -sourcepath C:\aiqing\tools\debugjdk\rt_debug\src -cp C:\aiqing\tools\debugjdk\rt_debug\rt.jar -d C:\aiqing\tools\debugjdk\debug_rt\classes -g @filelist.txt
8、cmd进入C:\aiqing\tools\debugjdk\debug_rt\classes目录,执行: jar cf0 rt_debug.jar * ;这步会生成一个rt_debug.jar

9、把这个rt_debug.jar包复制到JAVA_HOME\jre\lib下
10、把JAVA_HOME加入到eclipse中,eclipse点击window->preferences->Installed JREs,选择相应JDK,然后点击Add External JARs...,选择我们步骤9中添加的rt_debug.jar(位置在rt.jar之上)。

11、链接rt_debug.jar的源码JAVA_HOME\src.zip(rt_debug也是用的src.zip中的jdk源码)

12、ok,接下去就可以在jdk中遨游了。


jdk学习之如何调试jdk的更多相关文章
- oracle jdk和openjdk区别;idea如何加载jdk源码并调试jdk代码
两个jdk的区别 oracle jdk是sun/oracle(甲骨文)公司的,部分jdk开源:相对比较稳定,使用的比较多. openjdk是完全开源的,据说是官方oracle唯一承认的开源版本. id ...
- 调试JDK源代码-一步一步看HashMap怎么Hash和扩容
调试JDK源代码-一步一步看HashMap怎么Hash和扩容 调试JDK源代码-ConcurrentHashMap实现原理 调试JDK源代码-HashSet实现原理 调试JDK源代码-调试JDK源代码 ...
- eclipse调试jdk源码
摘要 介绍使用eclipse调试jdk源码 java是一门开源的程序设计语言,喜欢研究源码的java开发者总会忍不住debug一下jdk源码.虽然官方的jdk自带了源码包src.zip,然而在debu ...
- eclipse如何debug调试jdk源码(任何源码)并显示局部变量
最近要看struts2源码 仿照了一下查看jdk源码的方式 首先你要有strtus2的jar包和源码,在struts官网上下载时,选择full版本,里面会有src也就是源码了. jar导入项目,保证可 ...
- 跟踪调试JDK源码时遇到的问题及解决方法
目录 问题描述 解决思路 在IntelliJ IDEA中调试JDK源码 在eclipse中调试JDK源码 总结 问题描述 最近在研究MyBatis的缓存机制,需要回顾一下HashMap的实现原理.于是 ...
- 如何调试JDK源代码并查看局部变量值
如下图: 按F5进入String.startsWith,如下: 点“Edit Source Lookup Path” 附加源代码,如下图: 附加上源代码后如下: 可以看到,当鼠标放在“prefix”上 ...
- ddms+adt+jdk的安装及调试开发安卓
_______ ddms+adt+jdk的安装及调试开发安卓 目录 阐述 1 1 jdk安装 1 2 sdk安装 3 3 Eclipse安装 6 4 ADT安装 10 5 Ddms使用 16 ...
- JDK学习---深入理解java中的HashMap、HashSet底层实现
本文参考资料: 1.<大话数据结构> 2.http://www.cnblogs.com/dassmeta/p/5338955.html 3.http://www.cnblogs.com/d ...
- JDK学习---深入理解java中的LinkedList
本文参考资料: 1.<大话数据结构> 2.http://blog.csdn.net/jzhf2012/article/details/8540543 3.http://blog.csdn. ...
随机推荐
- ItemsControl的两种数据绑定方式
最近在学习ItemsControl这个控件的时候,查看了MSDN上面的一个例子,并且自己做了一些修改,这里主要使用了两种方式来进行相应的数据绑定,一种是使用DataContext,另外一种是直接将一个 ...
- 使用nmon进行系统监控
一.下载并安装: 下载地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download 下载版本:nmon16g_x86.tar.gz 不用的Li ...
- caffe配置NCCL
设置Makefile.config 打开开关: USE_NCCL := 1, 并添加nccl库路径 USE_NCCL := 1 INCLUDE_DIRS += /path/nccl/build/inc ...
- cxf 方法添加注解
/** * 登录 * @param uid * @param password * @return */ @POST @Path(value = "/login") public ...
- SpringBoot+MyBatis多数据源使用分页插件PageHelper
之前只用过单数据源下的分页插件,而且几乎不用配置.一个静态方法就能搞定. PageHelper.startPage(pageNum, pageSize); 后来使用了多数据源(不同的数据库),Page ...
- codeforces 797B
B. Odd sum time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- 2019.3.28&2019.3.30考试
2019.3.28 : 肥肠爆芡,因为这场考试的题太屑了,所以我咕咕了 Upd on 2019.3.30 压进来一篇(因为都没啥意义) 2019.3.30 : 全机房读错题+没有大样例=T2全体爆炸 ...
- CodeChef题目选讲
https://wenku.baidu.com/view/2445a0322f60ddccda38a023.html 关键点:不超过7条 根据咕咕原理,所以答案最少是N/7;(N小于49就暴力) 随机 ...
- 1093. Count PAT's
The string APPAPT contains two PAT's as substrings. The first one is formed by the 2nd, the 4th, and ...
- bug7 java.net.BindException: 端口被占用。
java.net.BindException: 端口被占用. java.net.BindException: 端口被占用.