【发布时间】:2011-06-11 06:55:57
【问题描述】:
我遇到了一个有趣的问题,这对我来说是全新的。正如我突然发现的那样,Jar 规范说,被包含在内,META-INF 和 MANIFEST.MF 必须是 *.jar 包的第一个和第二个条目,而不仅仅是存档中的目录和文件。
我正在使用 Java 框架,非常注意这个要求,而不是那么冗长。如何检查 META-INF 和 MANIFEST.MF 在 jar 中的顺序是否正确?
更新: 许多罐子是第三方的,而且有很多。我无法在记事本、excel、hexeditor、photoshop 或任何寻找字节序列的东西中打开这些罐子。我需要命令行工具。谢谢!
更新 2: 这就是我问这个问题的原因: http://www.mail-archive.com/dev@felix.apache.org/msg17097.html
【问题讨论】:
-
实际上规范并没有说它们必须是第一。但是,
jar命令行工具确实将它们放在首位,并且某些工具期望它们如此,例如,因为工具可以快速扫描整个 JAR 文件目录中的清单。所以这实际上更像是一种约定而不是一种要求。 -
@Neil Bartlett,感谢您的澄清,但这让我的情况变得更糟:(这是问题的根源:mail-archive.com/dev@felix.apache.org/msg17097.html 有什么想法吗?
-
啊哈,所以这是一个假设清单首先出现的工具实例!要回答您的原始问题,
jar tf foo.jar应按顺序列出 JAR 的内容。 -
@Neil Bartlett,谢谢,工作。您能否将其作为回复与误导性“规范”的披露一起发布?顺便说一句,刚刚检查了我的 Intellij Idea 10 战争神器构建器 - META-INF 追随 WEB-INF,wtf? :)