2010-10-09 211 views
0

我使用命令创建jar文件。无法运行jar文件

$jar -cvf A.jar A.class 

我试图执行

$java -jar A.jar 

我得到以下错误(前加入 “主级:A” 到MANIFEST.MF)。MANIFEST.MF的

Failed to load Main-Class manifest attribute from A.jar 

内容

Manifest-Version: 1.0 

Created-By: 1.6.0_18 (Sun Microsystems Inc.) 
Main-Class: A 

现在我得到

Exception in thread "main" java.lang.NoSuchMethodError: main 

回答

1

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

为了做到这一点,你必须创建一个包含此行文件:

Main-Class: A 

(我假设A是你的包含您的主要方法类,如果情况并非如此指定的FQN你期望的类)

并创建具有以下命令在罐子:

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 

您的编辑后:

必须在你Amain()方法要启动。检查下面的链接。


资源:

+0

是现在的工作! – Jagan 2010-10-09 16:04:52