转:http://blog.csdn.net/cherrycheng_/article/details/51004386

原英文地址:http://stackoverflow.com/questions/18255474/debug-jdk-source-cant-watch-variable-what-it-is

问题效果图:

解决后的效果:

具体步骤:

1.制作可调试的rt.jar包

1.1 .在D盘新建jdk7_src及jdk7_rt-debug两个文件夹

1.2.复制JDK源码

将环境变量中配置的java_home地址或者将用的外部JDK安装目录下的src.zip

复制到D:/jdk7_src,解压.效果如下图

1.3.选择要编译的源码

原文中说,留下Java,javax,org三个文件夹就足够了,其他都可以删除。

我只是把swing的内容删除了,其他都留下了。大伙可以随意。

swing包目录位置:com\sun\java\swing,javax\swing

1.4.得到要处理的java文件名

命令及效果图如下:

要查看一下,自动生成的filelist.txt中是否有内容哦,没有数据的话下面的操作是没用的。

d:
cd jdk7_src
dir /B /S /X *.java>filelist.txt

1.5.复制jre/lib/rt.jar

把JDK安装目录(复制src.zip的那个目录)下jre/lib下的rt.jar复制到jdk7_src目录下

1.6.生成一些可调试的class文件夹

执行如下命令,成功后,jdk7_rt-debug文件夹会产生一些可调试的class文件夹,如下图:

如果没有,请打开jdk7_src/log.txt,ctrl+F查找“错误”,并解决。

一般,将报错的java路径及路径对应的文件删除,再执行dir /B /S /X *.java > filelist.txt即可。

javac -J-Xms16m -J-Xmx1024m -sourcepath D:\jdk7_src -cp D:\jdk7_src\rt.jar -d D:  \jdk7_rt-debug -g @filelist.txt >> log.txt >&
 

1.7.将这些文件打包成Jar

命令和效果如下图

cd ..
cd jdk7_rt-debug
jar cf0 rt_debug.jar *

2.使用可调试的rt.jar

2.1.把rt_debug.jar放入JDK中

放入java_home/jre/lib/endorsed目录

2.2.将rt_debug.jar加入Eclipse使用的JDK中

2.3.添加rt_debug.jar的源码包

注意:若原来的JRE目录下已经存在了rt.jar包,则要将新编译的rt_debug.jar的位置在原来的jar包之前,如下图所示。

2.4.开始debug吧,你成功了!!

eclipse 如何debug jdk源码(转)的更多相关文章

  1. eclipse下导入jdk源码

    一直想好好看看jdk的源码,虽然可以直接解压jdk下的src看,但是终究不方便!后来发现可以导入到eclipse中,就在网上找了一些方法,下面就和大家分共享: step1:打开eclipse选择Win ...

  2. 在Eclipse中查看JDK源码的方法

    遇到这个问题是因为想证明Vector中的get()方法是不是用synchronized关键字修饰的来保证线程安全的方法, 于是在Eclipse里面: Vector<Integer> vec ...

  3. eclipse下查看jdk源码

    打开eclipse,点 "window"-> "Preferences" -> "Java" -> "Insta ...

  4. Eclipse中查看JDK源码设置

    设置方法如下: 1.路径 window-> Preferences -> Java -> Installed JRES 2.此时"Installed JRES"右 ...

  5. 在eclipse中添加jdk源码

    window->Preferences->java->Installed JREs 点击你的jre然后点右边的Edit 找到以rt.jar结尾的jar,点击右边的Source Att ...

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

    最近换了新版的eclipse,在jdk源码里面,打断点发现无法进入源码调试,程序直接跳过,已查资料发现自己eclipse配置的是jre环境的. 此处要配成jdk目录才有效 打开preferences, ...

  7. eclipse 查看jdk源码

    eclipse中引入jdk源码的设置:  设置: 1.点 "window"-> "Preferences" -> "Java" ...

  8. 跟踪调试JDK源码时遇到的问题及解决方法

    目录 问题描述 解决思路 在IntelliJ IDEA中调试JDK源码 在eclipse中调试JDK源码 总结 问题描述 最近在研究MyBatis的缓存机制,需要回顾一下HashMap的实现原理.于是 ...

  9. eclipse如何debug调试jdk源码(任何源码)并显示局部变量

    最近要看struts2源码 仿照了一下查看jdk源码的方式 首先你要有strtus2的jar包和源码,在struts官网上下载时,选择full版本,里面会有src也就是源码了. jar导入项目,保证可 ...

随机推荐

  1. Linux学习 -- 系统管理

    1 进程管理 判断服务器健康状态 top [选项] 查看系统中所有进程 ps aux      BSD格式 ps -le        Linux格式 pstree [选项] -p   显示PID - ...

  2. android 在代码中使用 #ffffff 模式 设置背景色

    differentsum.setBackgroundColor(Color.parseColor("#F3733F"));

  3. 解决phpmyadmin 点击表结构时卡顿、一直加载、打不开的问题

    本文内容是转自其它站点,亲测可用. 第一步,打开 ./version_check.php文件,找到以下代码: $save = true; $file ='http://www.phpmyadmin.n ...

  4. STM32中断触发

    使用PB1作为外部中断触发,按一次按键灯处于亮状态,在按一次灯灭. 1.先配置GPIO端口.复用管脚外设时钟使能GPIO_Config(); void GPIO_Config(void) { GPIO ...

  5. 使用C语言扩展Python

    开发环境:Ubuntu9.10,python2.6,gcc4.4.1 1,ubuntu下的python运行包和开发包是分开的,因此需要在新利得里面安装python-all-dev,从而可以在代码中引用 ...

  6. android脚步---UI界面修改,关于activity中增加按钮和监听

    增加按钮和监听,这个和上个不同在于,它不是在一个dialog里面,而是从新写了一个activity,因此需要先找到这个activity的入口. case R.id.checkframe: if (mC ...

  7. ARM指令集学习总结-转载

    ARM指令集比较简单,本文介绍ARM指令集中需要注意和不易理解的地方.       一.ARM指令集是32位的,程序的启动都是从ARM指令集开始,包括所有异常中断都是自动转化为ARM状态,并且所有的指 ...

  8. hrbust 1721 A + B = 0 map的应用

    13级春季校赛的热身题,但优化后我的代码也超时了,后来看了看学长的解法,觉得最简单的还是map,再一次感受到了map的强大. 题目描述如下 Description There is an intege ...

  9. 学习Robot Framework必须掌握的库—-BuiltIn库

    作为一门表格语言,为了保持简单的结构,RF没有像别的高级语言那样提供类似if else while等内置关键字来实现各种逻辑功能,而是提供给了用户BuiltIn库.如果用户想在测试用例中实现比较复杂的 ...

  10. iPad开发中UIPopoverController的使用

    什么是UIPopoverController 是iPad开发中常见的一种控制器 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController 它只占用部分屏幕空间来 ...