Java 为什么jar忽略了我的清单?

Java 为什么jar忽略了我的清单?,java,jar,manifest,Java,Jar,Manifest,我尝试使用以下命令创建一个可执行jar: jar -cvfm h.jar Manifest.mf Whatever1.class Whatever2.class 清单包含以下内容: Main-Class: Whatever1 但是如果我尝试运行jar,我会得到:无法从我的.jar加载主类清单属性。我提取了罐子,我看到它清单上的内容如下: Manifest-Version: 1.0 Created-By: 1.6.0_18 (Sun Microsystems Inc.) 为什么我的清单被忽略

我尝试使用以下命令创建一个可执行jar:

jar -cvfm h.jar Manifest.mf Whatever1.class Whatever2.class
清单包含以下内容:

Main-Class: Whatever1
但是如果我尝试运行jar,我会得到:
无法从我的.jar加载主类清单属性。我提取了罐子,我看到它清单上的内容如下:

Manifest-Version: 1.0
Created-By: 1.6.0_18 (Sun Microsystems Inc.)
为什么我的清单被忽略了


编辑:我知道使用
-e
标志可以指定一个入口点,jar将生成一个正确的清单,但我想知道如何使这个版本工作。

我想您必须像以下那样运行jar:

jar-cvf h.jar-m Manifest.mf Whatever1.class Whatever2.class


因为选项的值直接位于选项本身之后。

Manifest.mf

的最后一行之后添加换行符。我注意到,清单文件末尾没有换行符有时会导致此问题。查看在清单文件末尾添加新行是否有帮助。

上面说:
-m:没有这样的文件或目录
。它必须是
jar-cmvf h.jar manifest.mf Whatever1.class Whatever2.class
试试保存我的一天。花了我一个小时的时间才找到你的答案。在看到你的帖子之前我一直很沮丧。这节省了我很多时间…害怕…我看到这篇帖子有点晚…在花了一天的时间之后…但是无论如何,谢谢!!!