Java 无法运行jar文件

Java 无法运行jar文件,java,Java,我使用命令创建jar文件 $jar -cvf A.jar A.class 我试着执行 $java -jar A.jar 我得到以下错误。(在将“Main class:A”添加到manifest.mf之前) MANIFEST.MF的内容 Manifest-Version: 1.0 Created-By: 1.6.0_18 (Sun Microsystems Inc.) Main-Class: A 现在我越来越紧张了 Exception in thread "main" java.lang

我使用命令创建jar文件

$jar -cvf A.jar A.class
我试着执行

$java -jar A.jar 
我得到以下错误。(在将“Main class:A”添加到manifest.mf之前)

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

jar中还需要一个文件。

通常,在创建jar时不需要指定清单文件,但当您想通过启动
java-jar
来启动jar时,必须指定自己的清单,其中详细说明了包含
main()
方法的类的位置

为此,您必须创建一个包含以下行的文件:

Main-Class: A
(我假设A是包含main方法的类,如果不是,请指定所需类的FQN)

并使用以下命令创建jar:

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

编辑后:

必须在要启动的
a
类中具有
main()
方法。检查下面的链接


资源:

//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