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

时间:2012-04-13 03:21:55

标签: java jar patch executable-jar

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

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

GRAE

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:4)

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

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

jar uf myJar com\test\MyClass.class

此处您的班级位于com.test包

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

除了MyClass.class之外,您还需要替换/添加这些子类.class。 比如

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

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

最重要的是,如果你的罐子已签名,你必须辞去你的罐子。因为如果你在jar中改变任何东西,签名就会丢失。