2010-08-18 136 views
4

我有一个使用外部jar的应用程序。我用eclipse,它工作正常。我从eclipse导出为jar,创建了一个具有类路径的Manifest文件:./cab.v1.jar 我将两个jar放在同一个目录中。 我在命令行中运行: Java的罐子myApp.jarJava执行jar,它依赖于命令行中的其他jar

,并获得在cab.v1.jar类java.lang.NoClassDefFoundError(其他JAR) 也试过java命令。 -jar myApp.jar但没有成功。 我在做什么错?

回答

6

使用documentation for the Manifest它不使用相对目录的./。使用-jar

Class-Path: cab.v1.jar 

注意,-cp选项将被忽略:只是尝试一下。

+0

谢谢。我试了一下,没有工作,但后来提取jar,看到日食并没有使用我的类路径放在maninifest文件中。它手动和它的工作。任何想法为什么日食这样做? – Cratylus 2010-08-18 07:10:39

+2

您必须使用Export - > Runnable Jar。 – 2010-08-18 08:48:50

+0

@Ravn Andersen:谢谢!随着可运行的jar它工作! – Cratylus 2010-08-18 12:09:55

2

如果使用-jar选项,则类路径将被忽略。您可以通过启动应用程序

java -cp jar1.jar:jar2.jar mainclass 

类路径分隔符':'是';'在窗户上。

+0

试图如你所说: java -cp cab.v1.jar -jar myApp.jar 但仍然是同样的错误。请注意,这两个罐子都在同一个目录下 – Cratylus 2010-08-18 06:42:26

+0

@ user38706我写道,你不能同时使用-jar和-cp。这里有几个选项:http://mindprod.com/jgloss/classpath.html – stacker 2010-08-18 06:53:43

+0

对不起,我的不好。无论如何,我提取jar,看到eclipse没有使用我将类路径放在清单文件中。它手动和它的工作。任何想法为什么日食这样做? – Cratylus 2010-08-18 07:32:37