我需要从log4j-1.2.17.jar中删除JMSAppender类。这个jar包在我的名为xyz.jar的可执行jar中。删除JMSAappender类并使jar恢复原样最有效、最简单的方法是什么?
文件目录如下:
xyz.jar
|-BOOT-INF/lib/log4j-1.2.17.jar
|-META-INF
|-org
log4j-1.2.17.jar
|-org
|--apache
|| log4j-
|--------net
||--------JMSAppender.class
|-META-INF
jar文件与重命名为".jar"的zip存档没有什么不同。因此,任何删除或更改zip文件中某些内容的解决方案都是适用的,例如
- https://superuser.com/questions/600385/remove-single-file-from-zip-archive-on-linux
- 如何删除或替换zip存档中的文件
但是,如果jar带有签名,则可能会出现问题。在这种情况下,任何收件人都可以验证签名是否已损坏,这意味着文件已被篡改。要了解已签名的罐子,请阅读
- https://docs.oracle.com/en/java/javase/14/docs/specs/man/jarsigner.html