我正在尝试使用以下命令更新现有 jar 中的文件(在本例中为 antlr):
jar -uf antlrworks-1.2.3.jar org/antlr/codegen/templates/Java/Java.stg
但我收到以下消息
java.util.zip.ZipException:重复条目:antlr/ANTLRError.class
在 java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:175)
在 java.util.jar.JarOutputStream.putNextEntry(JarOutputStream.java:92)
在 sun.tools.jar.Main.update(Main.java:508)
在 sun.tools.jar.Main.run(Main.java:185)
在 sun.tools.jar.Main.main(Main.java:1044)
有任何想法吗?
您正在尝试做正确的事情,但是 jar 文件有问题 - 它有两次相同的条目:((这对于 zip 文件来说是合法的,但并不是真正有用 - 正如您所看到的,它使得jar
抱怨。)
如果你跑
jar tvf antlrworks-1.2.3.jar > contents
然后查看生成的contents
文件你会看到有各种重复的文件。您可能应该将此报告给 antlr 项目(检查后他们还不知道)。
作为解决方法,您可以提取 jar 文件的内容,再次将其打包,然后then您将拥有一个可以更新的“工作”jar 文件。 (如果您只需要执行此操作一次,您可以提取所需的文件,将其放入其中,然后将整个文件打包,而不是事后更新。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)