eclipse支持调试jdk自带的rt.jar

1.背景

eclipse调试jdk自带的rt.jar中的代码时,不能看到方法参数或局部变量的值。

这是因为oracle发布的jdk正式版中去掉了代码中的调试信息。所以要想在平时的工作中调试rt.jar中的代码,就必须要重新编译rt.jar。

2.步骤

  1. 创建目录:rt_debug(如: F:\rt_debug)
  2. 把JAVA_HOME/src.zip复制到rt_debug中并解压,并只保留java、javax、org三个目录(三个常用的完全够了)
  3. 把JAVA_HOME/jre/lib/rt.jar复制到rt_debug中
  4. DOS中:cd  F:\rt_debug
  5. dir /B /S /X *.java > files.txt(在rt_debug目录下创建files.txt,保存所有的.java文件)
  6. 创建F:\rt_debug\classes目录
  7. DOS中:javac
    -J-Xms16m -J-Xmx1024m -sourcepath . -cp ./rt.jar -d ./classes -g @files.txt(重新编译,并放入classes目录中)
  8. DOS中:cd classes
  9. DOS中:jar cf0 rt_debug.jar *(把编译后的文件重新打成jar包)
  10. 把rt_debug.jar放入JAVA_HOME/jre/lib中
  11. eclipse中选择Installed JRES,选择相应的JDK,点击Edit,然后选择点击Add External jars,选择rt_debug.jar,UP到rt.jar之上
时间: 2024-10-13 21:47:59

eclipse支持调试jdk自带的rt.jar的相关文章

解决Debug JDK source 无法查看局部变量的问题方案(重新编译rt.jar包)

一.问题阐述 首先我们要明白JDK source为什么在debug的时候无法观察局部变量,因为在jdk中,sun对rt.jar中的类编译时,去除了调试信息,这样在eclipse中就不能看到局部变量的值.这样的话,如果在debug的时候查看局部变量,就必须自己编译相应的源码使之拥有调试信息.要达到这个目的,一是找网上人家已经编译好的版本,剩下的只能自己去编译.下面我们对于自己编译提供一个方法,希望对大家有所帮助,如果有什么问题,请留言. 二.解决方案1.选择或创建你的工作目录,比如我选择:E:\2

elipse 调试jdk时候变量不现实值以及解决办法

今天以前的同事问我这个问题,我也不知道为什么. 问题是:当DEBUG自己程序的时候,调用了第三方的类库--比如JDK自己的类库--我们有这些类库的源码,进入随源码进入类库后,你会发现代码运行的行会在调试下一步步走,但鼠标指向变量时不再显示变量的值,选中->右键->watch也不能看到变量的值,什么原因? 我以前经常遇到这些问题,但从来没想过为什么不行,以为不是自己的类库就不显示,实际情况并非如此. 于是同事查了一下原因,发给了我,我就直接贴在这儿了. Debug into rt.jar Aug

JDK源码重新编译——支持eclipse调试JDK源码--转载

最近在研究jdk源码,发现debug时无法查看源码里的变量值. 因为sun提供的jdk并不能查看运行中的局部变量,需要重新编译一下rt.jar. 下面这六步是编译jdk的具体步骤: Step 1:  Locate the JDK source First navigate to the JDK install directory, and locate the src.zip file. This file contains the JDK sources – and is absolutely

eclipse如何debug调试jdk源码

java是一门开源的程序设计语言,喜欢研究源码的java开发者总会忍不住debug一下jdk源码.虽然官方的jdk自带了源码包src.zip,然而在debug时查看变量却十分麻烦.例如调试HashMap的 public V put(K key, V value) 方法并查看key的值时会提示: 可以看到不能显示变量的值了,原因在于oracle提供的jre中rt.jar不带debug信息:orcale在编译src时使用了 javac -g:none,意思是不带任何调试信息,这样可以减小rt.jar

设置Eclipse可以Debug模式调试JDK源码,并显示局部变量的1

最近突然萌发了研究JDK源码的想法,所以就想到了在自己常用的Eclipse上可以调试JDK源码. 整个设置过程也很简单: 首先你要安装好JDK(我的JDK安装路径根目录是D:\Java\jdk-8u92-windows-x64),JDK安装路径里有个"src.zip"就是JDK的源码文件压缩包: 设置好环境变量的JAVA_HOME变量和PATH变量(JAVA_HOME变量值也是D:\Java\jdk-8u92-windows-x64). 然后打开Eclipse设置可以Debug模式调试

设置Eclipse可以Debug模式调试JDK源码,并显示局部变量的值

最近突然萌发了研究JDK源码的想法,所以就想到了在自己常用的Eclipse上可以调试JDK源码. 整个设置过程也很简单: 首先你要安装好JDK(我的JDK安装路径根目录是D:\Java\jdk-8u92-windows-x64),JDK安装路径里有个"src.zip"就是JDK的源码文件压缩包: 设置好环境变量的JAVA_HOME变量和PATH变量(JAVA_HOME变量值也是D:\Java\jdk-8u92-windows-x64). 然后打开Eclipse设置可以Debug模式调试

eclipse无法断点调试JDK源码的问题

最近换了新版的eclipse,在jdk源码里面,打断点发现无法进入源码调试,程序直接跳过,已查资料发现自己eclipse配置的是jre环境的. 此处要配成jdk目录才有效 打开preferences,点击java ,在点击installed JRES 选中jre的目录,我这里只有一个,是我jdk的安装目录, 将JRE home配置成jdk的目录, 点击Restore Default就可以调试了. 这里简单说下jre和jdk的区别. JRE: Java Runtime Environment JD

Eclipse里面调试java总结

? 正所谓"工欲善其事必先利其器",会用Eclipse去调试可以帮助识别和解决应用程序缺陷,同时也可以帮助我们去阅读和理解一些源码是有极大的帮助的.可以极大的提高我们的工作效率.?  1.基础知识,熟悉Debug视图 认识debug视图,红色部分框为线程堆栈视图,黄色部分框为表达式.断点.变量视图,蓝色部分为代码视图.  线程堆栈视图 分别介绍一下这几个按钮的含义: 1.表示当前实现继续运行直到下一个断点,快捷键为F8. 2.表示打断整个进程 3.表示进入当前方法,快捷键为F5. 4.

调试JDK源代码-一步一步看HashMap怎么Hash和扩容

调试JDK源代码-一步一步看HashMap怎么Hash和扩容 调试JDK源代码-ConcurrentHashMap实现原理 调试JDK源代码-HashSet实现原理 调试JDK源代码-调试JDK源代码-Hashtable实现原理以及线程安全的原因 还是调试源代码最好. 开发环境  JDK1.8+NetBeans8.1 说明:调试HashMap的 public V put(K key, V value) 方法并查看key的值时不能显示变量的值,原因在于oracle提供的jre中rt.jar不带de