如何在togther中使用java -cp和-jar

时间:2015-07-28 09:29:32

标签: java command-line

我正在尝试以下方法:

java -cp <path to the additional required jar > -jar <jarname>.jar

运行上面的命令时,我仍然收到java.lang.NoClassDefFoundError。 看起来它仍然无法找到-cp后提到的外部jar。 在给出java命令时,这是正确的语法吗?

3 个答案:

答案 0 :(得分:1)

您不能同时使用-jar和-classpath选项。如果要使用-jar选项,则需要将第二个JAR文件添加到第一个JAR文件清单中的Class-path属性。

答案 1 :(得分:-1)

您可以将其他jar添加到bootclasspath

 java -Xbootclasspath/a:additional_required.jar -jar main.jar

示例

<强> Foo.java

package foo;
public class Foo {
    public static void main(String[] args) {
        new bar.Bar();
    }
}

<强> Bar.java

package bar;
public class Bar {
    public Bar() {
        System.out.println("foobar");
    }
}

<强> MANIFEST.MF

Main-Class: foo.Foo

执行命令

javac -d . Bar.java Foo.java
jar cf Bar.jar bar/
jar cmf manifest.mf Foo.jar foo/
java -Xbootclasspath/a:Bar.jar -jar Foo.jar

<强>输出

foobar

答案 2 :(得分:-1)

根据您提供的以下命令:

java -cp <path to the additional required jar > -jar <jarname>.jar

它会失败,因为'classpath'值必须是'; '分隔值。因此,请尝试在类路径值之后添加; 。例如:

java -cp A.jar;Bjar; -jar <jarname>.jar

并且即使您的类路径字符串中只有一个jar文件,它也是必需的:

java -cp A.jar; -jar <jarname>.jar

祝你好运。