如何在jar中validationMANIFEST.MF的顺序?

我遇到了一个对我来说绝对新鲜的有趣问题。 正如我突然发现的那样,Jar规范说,包括在内, META-INFMANIFEST.MF必须是*.jar包的第一和第二个条目,而不仅仅是归档中的目录和文件。

我正在使用Java框架非常注意这个要求而不是那么冗长。 如何在jar中检查META-INFMANIFEST.MF是否正确订购?

更新:许多jar子都是第三方,其中有很多。 我无法在记事本,excel,hexeditor,photoshop或任何寻找字节序列的东西中打开这些jar子。 我需要命令行工具。 谢谢!

更新2:以下是我提出这个问题的原因: http : //www.mail-archive.com/dev@felix.apache.org/msg17097.html

以下命令将按顺序列出JAR的内容:

 jar tf foo.jar 

请注意,首先出现META-INF/MANIFEST.MF的JAR规范中没有实际要求。 但是,由jar工具(随JDK提供)构建的jar首先具有清单,因此它已成为惯例。

带有JDK的jar工具会自动添加它们,所以不应该做任何事情。 如果你真的想检查,得到一个hex编辑器,并在任何其他文件名之前查找字符串’META-INF’和’MANIFEST.MF’。

要修复损坏的JAR:

 $ mkdir foo $ cd foo $ jar xvf ../broken.jar $ mv META-INF/MANIFEST.MF /tmp/mymanifest $ jar cvfm fixed.jar /tmp/mymanifest . 

请参阅: MANIFEST.MF必须是jar文件中的第一个资源 – 以下是如何修复损坏的jar