1

我在 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

4

2 回答 2

2

您的 jar 文件 remap.jar 不包含带有提供的主类选项的清单文件。您需要将主类指定为参数(您是为 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
于 2013-08-12T09:46:02.860 回答
2

javadocs

设置应用程序的入口点

如果您将应用程序捆绑在 JAR 文件中,则需要某种方式来指示 JAR 文件中的哪个类是您的应用程序的入口点。您使用清单中的 Main-Class 标头提供此信息,该标头具有一般形式:

Main-Class: classname 值 classname 是作为应用程序入口点的类的名称。

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

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

java -jar JAR-name 执行Main-Class头中指定的类的main方法。

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

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

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

java -jar MyJar.jar

于 2013-08-12T09:49:38.803 回答