4

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

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

格雷

4

2 回答 2

7

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

但是,请注意,如果类定义了常量static final基元或字符串变量,那么这些值将内联到其他类中(因此不会使用新类中包含的值)。

于 2012-04-13T03:28:10.150 回答
4

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 中的任何内容,签名将会丢失。

于 2012-04-13T03:51:09.437 回答