【发布时间】:2012-04-13 03:21:55
【问题描述】:
在 jar 文件中替换单个类文件是否安全?
类文件是否以不安全的方式相互引用?
格雷
【问题讨论】:
标签: java jar patch executable-jar
在 jar 文件中替换单个类文件是否安全?
类文件是否以不安全的方式相互引用?
格雷
【问题讨论】:
标签: java jar patch executable-jar
是的,你可以运行jar uf mJarFile.jar com\example\mClass.class。
但是,请注意,如果类定义了常量static final 原始变量或字符串变量,那么这些值将是in-lined into other classes(因此不会使用新类中包含的值)。
【讨论】:
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 中的任何内容,签名将会丢失。
【讨论】: