调试jdk中的源码,查看jdk局部变量

转自:http://www.douban.com/note/211369821/

 学习jdk源码时使用--

学习java最好的办法就是看jdk源代码,面对浩瀚的jdk(光源码就有40M多,比一个大型网站的源码都多)从何入手呢,要是能单步调试跟进到jdk源码里并且能查看其中的局部变量最好了。

可惜的是sun提供的jdk并不能查看运行中的局部变量,需要重新编译一下rt.jar。

废话少说,下面是编译jdk的具体步骤:
        1.把C:\java\jdk1.6.0_10\src.zip解压到C:\java\jdk1.6.0_10\src
        2.执行命令 dir /B /S /X C:\java\jdk1.6.0_10\src\*.java > fileList-jdk1.6.0_10-src.txt 生成一个包含所有源文件列表的txt文档
        3.最重要的一步,运行以下命令
        c:\Java\jdk1.6.0_10\bin\javac
          -verbose
          -nowarn
          -g
          -source 1.6
          -target 1.6
          -J-Xms512m
          -J-Xmx1024m
          -bootclasspath c:\Java\jre6\lib\rt.jar;c:\Java\jre6\lib\jce.jar;c:\Java\jre6\lib\jsse.jar;c:\Java\jre6\lib\resources.jar;c:\Java\jre6\lib\charsets.jar;c:\Java\jre6\lib\deploy.jar
          -sourcepath c:\Java\jdk1.6.0_10\src
          -classpath c:\Java\jdk1.6.0_10\src
          -d compiled
          @fileList-jdk1.6.0_14-src.txt
          其中-d complied是要新建的文件夹,用来存放编译生成的class文件,@fileList-jdk1.6.0_14-src.txt就是刚才生成的文本文件,这个步骤大概要执行2-3分钟左右。
        4. 执行完毕,所有新编译后的class文件都在complied文件夹中,重新打包生成rt.jar或者覆盖原来rt.jar中的类,生成新的rt.jar。最后把新生成的rt.jar放到c:\Java\jre6\lib和C:\java\jdk1.6.0_10\jre\lib覆盖原有的rt.jar,覆盖之前最好备份一下,这样就大功告成了。

需要说明的几点:
A. java最好安装在某盘的根目录下(如c:\Java\jdk1.6.0_10),不要放在program files下,因为这个文件夹名有个空格,执行javac命令时有可能产生不必要的麻烦。
B. 如果想在eclipse中跟踪调试,需要在Windows-Preferences-Java-Installed JRE下,选择安装的jdk,点edit,然后在列出的jre system libraries列表中选择rt.jar,设置其中的Source attachment为C:\java\jdk1.6.0_10\src.zip。

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

猜你喜欢

转载自95028410.iteye.com/blog/2222899