Java Debug Builds

    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

 

你可能感兴趣的:(debug)