我用命令创建jar文件。
$jar -cvf A.jar A.class
我尝试执行
$java -jar A.jar
我收到以下错误。(在manifest.mf中添加“Main-class:A”之前)
Failed to load Main-Class manifest attribute from A.jar
MANIFEST.MF的内容
Manifest-Version: 1.0
Created-By: 1.6.0_18 (Sun Microsystems Inc.)
Main-Class: A
现在我正在
Exception in thread "main" java.lang.NoSuchMethodError: main
答案 0 :(得分:1)
您还需要jar中的manifest文件。
答案 1 :(得分:1)
通常您在创建jar时不需要指定Manifest文件,但是当您想通过启动java -jar
来启动jar时,您必须指定自己的清单,其中详细说明了包含{的类的位置{1}}方法。
为此,您必须创建一个包含以下行的文件:
main()
(我认为A是包含主要方法的类,如果不是这种情况则指定所需类的FQN)
使用以下命令创建jar:
Main-Class: A
例如:
jar cfm A.jar yourFileContainingMain-Class A.class
编辑后:
您必须在您要启动的//Mac-Makkhdyn:~ Makkhdyn$ cat A.java
public class A{
public static void main(String... args){
System.out.println("lol");
}
}
//Mac-Makkhdyn:~ Makkhdyn$ cat manifest
Main-Class: A
//Mac-Makkhdyn:~ Makkhdyn$ javac A.java
//Mac-Makkhdyn:~ Makkhdyn$ jar cvfm A.jar manifest A.class
added manifest
adding: A.class(in = 399) (out= 278)(deflated 30%)
//Mac-Makkhdyn:~ Makkhdyn$ java -jar A.jar
lol
课程中使用main()
方法。请查看以下链接。
资源: