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个清单。
发生了什么事?
答案 0 :(得分:4)
使用M
选项停用默认META-INF/MANIFEST.MF
,或使用m
选项明确指定您自己的documentation。
答案 1 :(得分:2)
还有一件事:m
选项的顺序很重要。如果您先f
,jar
秒,那么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