eclipse 如何debug jdk源码(转)
转: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源码(转)的更多相关文章
- eclipse下导入jdk源码
一直想好好看看jdk的源码,虽然可以直接解压jdk下的src看,但是终究不方便!后来发现可以导入到eclipse中,就在网上找了一些方法,下面就和大家分共享: step1:打开eclipse选择Win ...
- 在Eclipse中查看JDK源码的方法
遇到这个问题是因为想证明Vector中的get()方法是不是用synchronized关键字修饰的来保证线程安全的方法, 于是在Eclipse里面: Vector<Integer> vec ...
- eclipse下查看jdk源码
打开eclipse,点 "window"-> "Preferences" -> "Java" -> "Insta ...
- Eclipse中查看JDK源码设置
设置方法如下: 1.路径 window-> Preferences -> Java -> Installed JRES 2.此时"Installed JRES"右 ...
- 在eclipse中添加jdk源码
window->Preferences->java->Installed JREs 点击你的jre然后点右边的Edit 找到以rt.jar结尾的jar,点击右边的Source Att ...
- eclipse无法断点调试JDK源码的问题
最近换了新版的eclipse,在jdk源码里面,打断点发现无法进入源码调试,程序直接跳过,已查资料发现自己eclipse配置的是jre环境的. 此处要配成jdk目录才有效 打开preferences, ...
- eclipse 查看jdk源码
eclipse中引入jdk源码的设置: 设置: 1.点 "window"-> "Preferences" -> "Java" ...
- 跟踪调试JDK源码时遇到的问题及解决方法
目录 问题描述 解决思路 在IntelliJ IDEA中调试JDK源码 在eclipse中调试JDK源码 总结 问题描述 最近在研究MyBatis的缓存机制,需要回顾一下HashMap的实现原理.于是 ...
- eclipse如何debug调试jdk源码(任何源码)并显示局部变量
最近要看struts2源码 仿照了一下查看jdk源码的方式 首先你要有strtus2的jar包和源码,在struts官网上下载时,选择full版本,里面会有src也就是源码了. jar导入项目,保证可 ...
随机推荐
- elasticsearch 手动控制分片分布
elasticsearch可以通过reroute api来手动进行索引分片的分配. 不过要想完全手动,必须先把cluster.routing.allocation.disable_allocatio ...
- jquery_api(事件一)
一 .unload在火狐,谷歌无法弹出alerta是因为这两个浏览器默认组织alert弹出,unload事件可以进行一些对象销毁,事件解除绑定等清理工作. 如果你想在用户离开页面之前确认是否离开,最好 ...
- Linux学习 -- Shell基础 -- 概述
Shell是什么? 命令解释器 编程语言 Linux支持的Shell类型 cat /etc/shells 主要学习 bash 脚本执行方式 echo echo -e 单引号 -- 原始字符串 双引号 ...
- JSch - Java实现的SFTP
JSch - Java实现的SFTP(文件上传详解篇) JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以 ...
- Sphinx配置过程
http://www.oschina.net/question/84274_11938 http://www.ibm.com/developerworks/library/os-php-sphinxs ...
- WiresShark 使用方法
Wireshark(前称Ethereal)是一款功能强大的网络抓包分析工具,在我的工作中是不可或缺的一部分工具,往往在网络出现异常时,查看网络中的数据包,会豁然开朗.1.菜单栏 主菜单包括以下几个项 ...
- CF 389 E 贪心(第一次遇到这么水的E)
http://codeforces.com/contest/389/problem/E 这道题目刚开始想的特别麻烦...但是没想到竟然是贪心 我们只需要知道偶数的时候可以对称取的,然后奇数的时候没次取 ...
- Linux下find命令用法小结
find是个使用频率比较高的命令.常常用它在系统特定目录下,查找具有某种特征的文件. find命令的格式:find [-path……] -options [-print -exec -ok] path ...
- 宿主机丢失vmnet0和vmnet8网卡
好久没打开虚拟机竟然发现与主机的连接网卡都不见了,有人说进入编辑-->虚拟网络编辑-->将主机虚拟适配器连接到此网络打钩就好,我觉得蛮有道理的,但是试验打勾并点击应用时虚拟机又会返回到没打 ...
- .h .m切换
快捷键是:command + control +[↑|↓]