jar忽略了我的清单

时间:2013-11-23 00:02:04

标签: java jar manifest manifest.mf

Jar忽略我的清单文件,并将其替换为自动生成的清单。

我的清单是:

Manifest-Version: 1.0 
Created-By: Student Name 
Main-Class: ua.sumdu.j2se.studentName.tasks.PrintMonth

(空行)

CMD:

jar -cvf build/tasks.jar MANIFEST.MF build\classes\ua\sumdu\j2se\studentName\tasks\*.class

因此如果我用winrar打开jar文件,就会有:

build
META-INF
MANIFEST.MF - my manifest

如果我将清单放入META-INF并执行

jar -cvf build/tasks.jar META-INF/MANIFEST.MF build\classes\ua\sumdu\j2se\studentName\tasks\*.class

在我的META-INF文件夹中将有2个清单。

发生了什么事?

5 个答案:

答案 0 :(得分:4)

使用M选项停用默认META-INF/MANIFEST.MF,或使用m选项明确指定您自己的documentation

答案 1 :(得分:2)

还有一件事:m选项的顺序很重要。如果您先fjar秒,那么manifest-file jar-file参数需要采用相同的顺序:The manifest file name, the archive file name and the entry point name are specified in the same order as the 'm', 'f' and 'e' flags. ,反之亦然。

我先错过了jar中的一行:

SetRedraw(false)

答案 2 :(得分:2)

同时检查清单的最后一行是否以新行或托架Feed结尾。我的清单末尾没有新行,这使得它似乎被省略了。

我看到你有(空行)。但是我没有一个人就得到了这个答案。

答案 3 :(得分:1)

试试这个jar -cmvf MANIFEST.MF build/tasks.jar build\classes\ua\sumdu\j2se\studentName\tasks\*.class

答案 4 :(得分:0)

第1步。

编译Main.java

javac Main.java

第2步。

创建MANIFEST.MF

Manifest-Version: 1.0
Main-Class: Main

第3步。

创建app.jar

jar cmvf MANIFEST.MF app.jar Main.class

第4步。

运行app.jar

java -jar app.jar