【问题标题】:Is it safe to replace single class file in a jar file?替换 jar 文件中的单个类文件是否安全?
【发布时间】:2012-04-13 03:21:55
【问题描述】:

在 jar 文件中替换单个类文件是否安全?

类文件是否以不安全的方式相互引用?

格雷

【问题讨论】:

    标签: java jar patch executable-jar


    【解决方案1】:

    是的,你可以运行jar uf mJarFile.jar com\example\mClass.class

    但是,请注意,如果类定义了常量static final 原始变量或字符串变量,那么这些值将是in-lined into other classes(因此不会使用新类中包含的值)。

    【讨论】:

      【解决方案2】:

      jar 命令(Sun JDK bin 中提供)替换类。

      但是,您需要了解以下内容。

      jar uf myJar com\test\MyClass.class
      

      您的课程位于 com.test 包中

      如果你的类有任何子类,那么通常这些类也被创建为 MyClass$MySubclass.class

      除了 MyClass.class 之外,您都需要替换/添加那些子 classes.class。 比如

      jar uf myJar com\test\MyClass$MySubclass.class
      

      了解您的更改是否涉及任何方法原型更改也很重要, 你必须重新编译那些依赖的类并使用它。

      最重要的是,如果您的 jar 已签名,您必须重新签名您的 jar。因为如果您更改 jar 中的任何内容,签名将会丢失。

      【讨论】:

        猜你喜欢
        • 2018-11-16
        • 1970-01-01
        • 2014-12-31
        • 1970-01-01
        • 1970-01-01
        • 2011-01-07
        • 2011-08-12
        • 2011-09-12
        • 2020-09-04
        相关资源
        最近更新 更多