`
joy_cz
  • 浏览: 140247 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

帮你的JDK做个小手术

阅读更多

本文以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(...)这个方法。在其最前面加上以下代码:

/** *//**
      *
     
*/

    System.out.println(
"-------- Starting writeObject0 ---------------");
    
if ( obj==null
    
...
        System.out.println(
"obj is null"); 
    }
 else 
    
...{
         String msg 
= obj.toString(); 
        
if ( obj instanceof Serializable ) ...
            msg 
+= " (Serializable)"
            }
 else ...{
             msg 
+=" (Un-Serializable)"
            }
 
        System.out.println(msg);
    }
    
    
/** *//**
      *
     
*/

 

然后在命令提示符下,进入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进行对象串行化时,就会显示那些进行串行化的对象名,及一些引发异常的对象名,这样你就可以在你的应用中为所欲为了。。。。

 

分享到:
评论

相关推荐

    jdk 内存设置jdk内存设置

    jdk 内存设置主要包括堆大小设置、垃圾收集器的选择和配置等几个方面。 堆大小设置是 jdk 内存设置的核心内容。堆大小的设置直接影响着 Java 应用程序的性能和稳定性。最大堆大小有三方面限制:相关操作系统的数据...

    JDK11安装包,JDK11安装包

    JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11...

    jdk8帮助文档 jdk8帮助文档jdk8帮助文档

    jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助...

    64位jdk1.8 精简版 体积非常小 解压后小于100M

    总之,这个64位精简版JDK 1.8是一个针对小空间需求用户的理想选择,它在保持基本功能的同时大大减少了存储占用。不过,使用者需要了解它的局限性,确保它能满足自己的开发需求。在部署前,最好检查精简版中包含的...

    Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11

    Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk...

    mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系

    mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk...

    jdk7 jdk8 jdk9 jdk10 jdk11 jdk12 jdk13 jdk14 (win-64位) 百度网盘下载

    jdk7 jdk8 jdk9 jdk10 jdk11 jdk12 jdk13 jdk14 (win-64位) 资源共享

    JDK7安装包.zip

    JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7...

    jdk-11.0.4-64bit.zip jdk-11版本

    jdk-11版本安装包、jdk-11版本安装包、jdk-11版本安装包 jdk-11版本安装包、jdk-11版本安装包、jdk-11版本安装包 jdk-11版本安装包、jdk-11版本安装包、jdk-11版本安装包 jdk-11版本安装包、jdk-11版本安装包、jdk-...

    jdk7 jdk8 jdk9 jdk10 jdk11 jdk12 jdk13 jdk14 (linux-rpm 64位) 百度网盘下载

    jdk7 jdk8 jdk9 jdk10 jdk11 jdk12 jdk13 jdk14 (linux-rpm 64位) 资源共享

    jdk1.8、jdk11、jdk17 资源下载

    jdk1.8、jdk11、jdk17 资源下载

    JDK11安装包文件、附带环境配置教程(全网最详情,值得收藏)

    JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK...

    Windows JDK安装,包含 jdk8 jdk11 jdk17 jdk22

    Windows JDK安装 包含 jdk8 jdk11 jdk17 jdk22 x64位安装包

    旧版本JDK JDK1.4

    JDK 1.4是Java历史上的一个重要版本,发布于2002年2月26日,标志着Java技术向前迈进了一大步。尽管现在已经被更新的版本如JDK 8、JDK 11和JDK 17所取代,但JDK 1.4对于理解Java的发展历程具有重要意义。 **主要特性...

    苹果电脑安装jdk1.6 mac for jdk1.6 jdk6 安装版

    mac for jdk1.6 jdk6 安装版 里面有两个jdk1.6的安装包,都可以用 如果电脑上安装有1.7,1.8等高版本jdk就不要再下安装包了,安装包安装会报错 命令是这个:brew install java6或 brew install homebrew/cask-...

    windows64位jdk6、jdk7、jdk8安装包

    这三个版本的JDK在Java的发展历程中都占有重要的地位,它们为开发者提供了编写、编译、调试和运行Java应用程序所需的所有工具。 首先,JDK6是Java平台标准版(Java SE)的第六个主要版本,于2006年发布。它引入了...

    jdk-1.8帮助手册~

    jdk_1.8帮助手册~jdk_1.8帮助手册~jdk_1.8帮助手册~jdk_1.8帮助手册~jdk_1.8帮助手册~jdk_1.8帮助手册~jdk_1.8帮助手册~jdk_1.8帮助手册~jdk_1.8帮助手册~jdk_1.8帮助手册~jdk_1.8帮助手册~jdk_1.8帮助手册~jdk_1.8...

    Linux更换JDK+weblogic更换JDK

    ### Linux系统更换JDK与WebLogic服务器更换JDK详解 #### 一、概述 在Linux环境中,更换JDK(Java Development Kit)对于确保应用程序能够稳定运行至关重要。此外,如果使用了Oracle WebLogic Server作为应用服务器...

    极简(最小)JDK1.8 Docker镜像

    极简(最小)JDK1.8 Docker镜像包,里面包含apk,wget,curl等命令

    安装JDK安装JDK安装JDK

    安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装JDK安装...

Global site tag (gtag.js) - Google Analytics