无法从Windows上的jar加载Main-Class清单属性

时间:2013-08-12 09:37:13

标签: java windows

我正在linux中执行一个jar,它的工作正常,这是命令:

 java -Djava.ext.dirs=/home/amira/workspace/srd/remap/libs fr.srd.remap.compiler.main.Main ~/Desktop/TDP/VQHFACCOI/VQHFACCOI.xml ~/Desktop/TDP/VQHFACCOI

因此,对于技术问题,我需要在Windows机器上运行它,所以这是使用的命令:

C:\Documents and Settings\walinbj\Desktop\remap-to-win>java -jar remap.jar -Djava.ext.dirs=Facture\libs fr.srd.remap.compiler.Main  C:\Documents and Settings\walinbj\Desktop\remap-to-win\Facture\TDPFAC010.xml

我收到此错误Failed to load Main-Class manifest attribute from remap.jar

2 个答案:

答案 0 :(得分:2)

您的jar文件remap.jar不包含带有提供的主类选项的MANIFEST文件。您需要将主类指定为参数(您是为linux命令行执行的)并为jar提供类路径。你不能使用-jar选项。尝试更改以使用以下命令:

C:\Documents and Settings\walinbj\Desktop\remap-to-win>java -classpath remap.jar -Djava.ext.dirs=Facture\libs fr.srd.remap.compiler.Main  C:\Documents and Settings\walinbj\Desktop\remap-to-win\Facture\TDPFAC010.xml

答案 1 :(得分:2)

来自javadocs

设置应用程序的入口点

  

如果您的应用程序捆绑在JAR文件中,则需要一些方法   指示JAR文件中的哪个类是您的应用程序的条目   点。您提供此信息与主要类头   清单,具有一般形式:

     

Main-Class:classname值classname是类的名称   这是您的应用程序的切入点。

     

回想一下,入口点是一个具有签名方法的类   public static void main(String [] args)。

     

在清单中设置Main-Class标头后,然后运行   使用以下形式的java命令的JAR文件:

     

java -jar JAR-name在类中指定的主要方法   执行Main-Class标头。

你基本上需要在你的jar中有一个清单文件,并且你需要定义你的Main-Class属性:

清单 - 版本:1.0 创建者:1.7.0_06(Oracle Corporation) Main-Class:fr.srd.remap.compiler.main.Main

使用以下命令运行JAR文件时,Main的main方法执行:

java -jar MyJar.jar