Java Debug Builds

本文详细介绍了如何通过拷贝、解压、编译JDK源代码,实现更深层次的Java调试。包括从原始ZIP包中提取源代码,编译成.class文件,并替换JRE库,以增强开发过程中的调试体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    java 有很强大的调试工具,我们有很多时候调试到jdk类的时候,发现看到不到局部变量,成员变量,值等情况,是因为jre发布的时候里面去掉了很多的调试信息,因为这些调试信息会占用内存,这是java为了提高性能,默认情况下去掉了这些调试信息。对于我们程序员,我们为了很方便的提高自己的水平和能力,我们很有必要再次编译jdk的src.zip下面的原代码,方便我们在eclipse IDE工具里面调试jdk的代码。

 

1 首先我们拷贝 JAVA_HOME\src.zip包到 某个地方,比方说 拷贝到

D:\srctmp\

2 解压D:\srctmp\src.zip 到 D:\srctmp\jdk1.6.0_20-src

3 列出 D:\srctmp\jdk1.6.0_20-src\下面的java文件到某个文件

 

dir /B /S /X d:\srctmp\jdk1.6.0_20-src\*.java > fileList-jdk1.6.0_20-src.txt

 

D:\srctmp>dir /B /S /X d:\srctmp\jdk1.6.0_20-src\*.java > fileList-jdk1.6.0_20-src.txt

4 编译源文件:

执行如下命令

 

D:\srctmp>"D:\dev\Java\jdk1.6.0_20\bin\javac" -verbose -nowarn -g -source 1.6 -target 1.6 -J-Xms512m -J-Xmx1024m -bootclasspath "D:\dev\Java\jdk1.6.0_20\jre\lib\rt.jar";D:\dev\Java\jdk1.6.0_20\jre\lib\jce.jar;D:\dev\Java\jdk1.6.0_20\jre\lib\jsse.jar;D:\dev\Java\jdk1.6.0_20\jre\lib\resources.jar;D:\dev\Java\jdk1.6.0_20\jre\lib\charsets.jar;D:\dev\Java\jdk1.6.0_20\jre\lib\deploy.jar -sourcepath jdk1.6.0_20-src -classpath jdk1.6.0_20-src -d out @fileList-jdk1.6.0_20-src.txt

 

注意  加入 -bootclasspath 确保我们可以正确的编译原代码。

编译后.class文件生成在

D:\srctmp\out 目录下面

 

5 拷贝 JAVA_HOME\jre\lib\rt.jar 到d:\srctmp\ 目录下面

用jar 命令解压rt.jar 到d:\srctmp\rt
jar -xvf rt.jar

6 将out下面编译的.class文件 全部拷贝到rt目录下进行覆盖,

 

7 重新打包rt目录

 

 jar cvf rt.jar ./

 

8 拷贝到新的rt.jar 到 JAVA_HOME\jre\lib\目录,覆盖之前先进行备份。

完毕

 

 原文参考 http://www.softwareengineeringsolutions.com/thoughts/Java-Debug-Build.htm

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值