Java jar - 没有主要清单属性
Java jar - no main manifest attribute
我知道 jar 文件应该有一个 manifest.mf Main-Class: 属性,以便有一个入口点并制作 jar文件 运行 可用。现在,我有一个我在下面构建的 jar 文件。 classes 都是 burrito 包的一部分。我的 MANIFEST.MF 文件如下所示:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.1
Created-By: 1.7.0_51-b13 (Oracle Corporation)
Class-Path:
X-COMMENT: Main-Class will be added automatically by build
Main-Class: burrito.Main
,当我尝试通过以下方式构建和执行时:
jar -cvf Burrito.jar Customer.class Main.class Server
.class Store.class MANIFEST.MF
*added manifest
adding: Customer.class(in = 2800) (out= 1424)(deflated 49%)
adding: Main.class(in = 1147) (out= 757)(deflated 34%)
adding: Server.class(in = 3954) (out= 2094)(deflated 47%)
adding: Store.class(in = 3950) (out= 2190)(deflated 44%)
adding: MANIFEST.MF(in = 203) (out= 158)(deflated 22%)*
我得到:
Burrito.jar
*java -jar Burrito.jar
no main manifest attribute, in Burrito.jar*
我尝试了各种方法,还尝试了 -m 开关 (cvfm)。我尝试了以下操作:
java -cp Burrito.jar burrito.Main
以及
java -cp Burrito.jar Main
,两者都告诉我 错误:无法找到或加载主 class
我一直在研究论坛,但似乎无法'Google'找到解决方案。 Netbeans jar 当然可以,但我需要自己构建。我查看了 Netbeans jar,发现我有两个文件夹,burrito 和 META-INF。当然,清单文件在 META-INF 文件夹中,而 burrito 文件夹包含 class 个文件。我不确定要完全模仿这个,我很乐意简单地将这个程序添加到 运行。
任何 pointers/hints?
你想要这样的东西:
jar -cvfm Burrito.jar MANIFEST.MF burrito/Customer.class burrito/Main.class burrito/Server.class burrito/Store.class
options后的第一个参数对应f
标志(要创建的文件),第二个参数对应m
标志(清单文件),其他所有arguments 是要添加到 JAR 中的文件。您必须确保 JAR 中的文件夹结构与 Java 包匹配,因此如果 burrito.Main
是 class,那么您需要在 JAR 中使用 burrito/Main.class
,对于其他 classes.
我知道 jar 文件应该有一个 manifest.mf Main-Class: 属性,以便有一个入口点并制作 jar文件 运行 可用。现在,我有一个我在下面构建的 jar 文件。 classes 都是 burrito 包的一部分。我的 MANIFEST.MF 文件如下所示:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.1
Created-By: 1.7.0_51-b13 (Oracle Corporation)
Class-Path:
X-COMMENT: Main-Class will be added automatically by build
Main-Class: burrito.Main
,当我尝试通过以下方式构建和执行时:
jar -cvf Burrito.jar Customer.class Main.class Server
.class Store.class MANIFEST.MF
*added manifest
adding: Customer.class(in = 2800) (out= 1424)(deflated 49%)
adding: Main.class(in = 1147) (out= 757)(deflated 34%)
adding: Server.class(in = 3954) (out= 2094)(deflated 47%)
adding: Store.class(in = 3950) (out= 2190)(deflated 44%)
adding: MANIFEST.MF(in = 203) (out= 158)(deflated 22%)*
我得到:
Burrito.jar
*java -jar Burrito.jar
no main manifest attribute, in Burrito.jar*
我尝试了各种方法,还尝试了 -m 开关 (cvfm)。我尝试了以下操作:
java -cp Burrito.jar burrito.Main
以及
java -cp Burrito.jar Main
,两者都告诉我 错误:无法找到或加载主 class
我一直在研究论坛,但似乎无法'Google'找到解决方案。 Netbeans jar 当然可以,但我需要自己构建。我查看了 Netbeans jar,发现我有两个文件夹,burrito 和 META-INF。当然,清单文件在 META-INF 文件夹中,而 burrito 文件夹包含 class 个文件。我不确定要完全模仿这个,我很乐意简单地将这个程序添加到 运行。
任何 pointers/hints?
你想要这样的东西:
jar -cvfm Burrito.jar MANIFEST.MF burrito/Customer.class burrito/Main.class burrito/Server.class burrito/Store.class
options后的第一个参数对应f
标志(要创建的文件),第二个参数对应m
标志(清单文件),其他所有arguments 是要添加到 JAR 中的文件。您必须确保 JAR 中的文件夹结构与 Java 包匹配,因此如果 burrito.Main
是 class,那么您需要在 JAR 中使用 burrito/Main.class
,对于其他 classes.