解压缩+;Zip Jar=>;getManifest==null

解压缩+;Zip Jar=>;getManifest==null,jar,manifest.mf,Jar,Manifest.mf,使用JarInputStream.getManifest()我可以从test.jar读取清单,但不能从test2.jar读取清单,因为它返回null 但是,如果我使用“jar”重新创建jar: unzip ../test.jar zip -r ../test2.jar * 我可以在test3.jar上获取清单 拉链不等于罐子吗?为什么?可能重复的。简而言之:manifest应该是文件中的第一个条目,jar工具显然尊重这一点,但zip不尊重这一点。虽然这可能回答了这个问题,但最好能提供一些解释,

使用JarInputStream.getManifest()我可以从test.jar读取清单,但不能从test2.jar读取清单,因为它返回null

但是,如果我使用“jar”重新创建jar:

unzip ../test.jar
zip -r ../test2.jar *
我可以在test3.jar上获取清单


拉链不等于罐子吗?为什么?

可能重复的。简而言之:manifest应该是文件中的第一个条目,jar工具显然尊重这一点,但zip不尊重这一点。虽然这可能回答了这个问题,但最好能提供一些解释,说明为什么会这样做。
jar cf ../test3.jar .
jar -cvfm test.jar META-INF/MANIFEST.MF .