我正在尝试以下方法:
java -cp <path to the additional required jar > -jar <jarname>.jar
运行上面的命令时,我仍然收到java.lang.NoClassDefFoundError。 看起来它仍然无法找到-cp后提到的外部jar。 在给出java命令时,这是正确的语法吗?
答案 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
祝你好运。