Java 为什么jar忽略了我的清单?
我尝试使用以下命令创建一个可执行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 -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
试试保存我的一天。花了我一个小时的时间才找到你的答案。在看到你的帖子之前我一直很沮丧。这节省了我很多时间…害怕…我看到这篇帖子有点晚…在花了一天的时间之后…但是无论如何,谢谢!!!