如果你有这个类的来源,那我的做法是:
>获取JAR文件
>获取单个类的源代码
>在类路径中使用JAR编译源代码(这样就不必编译任何其他东西;它不会伤害到JAR已经包含二进制文件).您可以为此使用最新的Java版本;只需使用-source和-target降级编译器.
>使用jar u或Ant任务用新的JAR替换JAR中的类文件
蚂蚁任务示例:
compress="true" update="true" duplicate="preserve" index="true"
manifest="tmp/META-INF/MANIFEST.MF"
>
在这里我也更新清单.先放入新类,然后添加原始JAR中的所有文件. duplicate =“preserve”将确保新的代码不会被覆盖.
如果代码未签名,您还可以尝试替换字节,如果新字符串的长度与旧字符的长度完全相同. Java对代码进行了一些检查,但是有no checksum in the .class files.
你必须保留长度;否则类加载器会变得困惑.