Java can';t执行jar文件没有主清单属性

Java can';t执行jar文件没有主清单属性,java,Java,创建jar文件,然后: jar cvef Main.jar Main * added manifest adding: DrawPane.class(in = 344) (out= 257)(deflated 25%) adding: DrawPane.java(in = 306) (out= 175)(deflated 42%) adding: main(in = 9038) (out= 8275)(deflated 8%) adding: Main.class(in = 868) (out

创建jar文件,然后:

jar cvef Main.jar Main *

added manifest
adding: DrawPane.class(in = 344) (out= 257)(deflated 25%)
adding: DrawPane.java(in = 306) (out= 175)(deflated 42%)
adding: main(in = 9038) (out= 8275)(deflated 8%)
adding: Main.class(in = 868) (out= 544)(deflated 37%)
adding: Main.java(in = 507) (out= 260)(deflated 48%)
adding: Manifest.txt(in = 18) (out= 18)(deflated 0%)
adding: src/(in = 0) (out= 0)(stored 0%)
adding: src/icon.png(in = 1163) (out= 1168)(deflated 0%)
adding: src/Thumbs.db(in = 3584) (out= 1038)(deflated 71%)
我得到一个错误:

java -jar Main.jar
我做错了什么?

根据您的清单文件应该有相对路径
META-INF/manifest.MF
。看起来你没有在那里添加你自己的清单。
jar
命令添加了一个默认清单,这就是为什么它会显示“manifest added”

编辑:根据,向清单文件添加内容的基本语法如下:

no main manifest attribute, in Main.jar

我建议您阅读本教程的前几节,我相信您会得到您想要的结果

确保在“:”后面写1个空格,在类名后面写新行,并以这种方式保存。 jar工具语法:

jar cfm jar-file manifest-addition input-file(s)
运行工具后,使用

 jar -cvmf manifest.txt appname.jar ClassName.class
manifest.txt文件的内容

主类:(1space)类名(按enter键输入新行)


希望它有助于

可能的重复,但我做得很好,不明白为什么找不到Manifest属性?看看输出…这不是一个重复,请你看看我的代码,给我一个什么是不正确的建议?因为我收到一条“添加清单”的消息,但在执行时仍然找不到它。。。这正是您要查找的。我添加了一个文件夹META-INF/MANIFEST.MF,它在输出中忽略了此文件,但仍然没有MANIFEST属性?我发现MANIFEST需要在末尾有一个新行,这很有趣。最近还注意到javac工具无法读取UTF16LE BOM。
java -jar appname.jar