我正在尝试使用以下命令更新现有jar中的文件(在此示例中为antlr):
jar -uf antlrworks-1.2.3.jar org/antlr/codegen/templates/Java/Java.stg
Run Code Online (Sandbox Code Playgroud)
但我收到以下消息
java.util.zip.ZipException:java.util.jar.JarOutputStream.putNextEntry(JarOutputStream.java:92)中java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:175)中的重复条目:antlr/ANTLRError.class at sun.tools.jar.Main.update(Main.java:508)at sun.tools.jar.Main.run(Main.java:185)at sun.tools.jar.Main.main(Main.java:1044) )
有任何想法吗?
你正在尝试做正确的事情,但jar文件有问题 - 它有两次相同的条目:((这对于zip文件是合法的,但不是真的有用 - 而且正如你所看到的,它会让人jar抱怨.)
如果你跑
jar tvf antlrworks-1.2.3.jar > contents
Run Code Online (Sandbox Code Playgroud)
然后查看生成的contents文件,您会看到有各种重复文件.您应该将此报告给antlr项目(在检查后他们还不知道).
作为一种解决方法,您可以提取jar文件的内容,再次将其打包,然后您将拥有一个可以更新的"工作"jar文件.(如果你只需要这样做一次,你可以提取,把你想要的文件放在那里,然后将整个罐子装罐,而不是事后更新它.)
| 归档时间: |
|
| 查看次数: |
10901 次 |
| 最近记录: |