本文以jdk1.5.0_11为例,要实现的是修改JDK中的ObjectOutputStream这个类的源码,以便在对一些object进行串行化时可以进行跟踪,确定有没有错,是哪些对象引起的出错。
首先,在你的JDK安装根目录下, 找到这个文件src.zip,如果找不到,则必须到SUN的官方网站下载。然后在D盘建一个文件夹,如:D:/jdk。里面包括以下文件夹(src,lib,bin)其中的src为刚刚的src.zip解压得到的,lib中是你当前的JDK目录下jdk1.5.0_11/jre/lib下的rt.jar。bin下是包含了rt.jar解压出来的所有class文件。
以上工作完毕后,打开src下的java/io/ObjectOutputStream中的writeObject0(...)这个方法。在其最前面加上以下代码:


























然后在命令提示符下,进入D:/jdk,执行javac -cp ./lib/rt.jar ./src/java/io/ObjectOutputStream.java这个命令,然后把src/java/io/下的8个class文件复制到bin下的相同目录下,覆盖原来的class。然后在bin目录下执行
jar -fc0 rt.jar *这个命令,得到rt.jar文件,再把这个文件复制到你的JDK安装目录下,覆盖原来的rt.jar文件。
这样修改后,你以后再使用ObjectOutputStream进行对象串行化时,就会显示那些进行串行化的对象名,及一些引发异常的对象名,这样你就可以在你的应用中为所欲为了。。。。