Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java在同一个.jar中找到一个被引用的类而不是另一个?_Java_Jar_Classpath - Fatal编程技术网

为什么Java在同一个.jar中找到一个被引用的类而不是另一个?

为什么Java在同一个.jar中找到一个被引用的类而不是另一个?,java,jar,classpath,Java,Jar,Classpath,如果我跑步: java -jar myjar.jar 我得到: java.lang.NoClassDefFoundError: org/apache/commons/math3/stat/regression/OLSMultipleLinearRegression java.lang.NoClassDefFoundError: org/apache/commons/math3/special/Erf 但是,如果我运行: java -classpath '.:commons-math3-3.

如果我跑步:

java -jar myjar.jar
我得到:

java.lang.NoClassDefFoundError: org/apache/commons/math3/stat/regression/OLSMultipleLinearRegression
java.lang.NoClassDefFoundError: org/apache/commons/math3/special/Erf
但是,如果我运行:

java -classpath '.:commons-math3-3.2.jar' -jar myjar.jar
我得到:

java.lang.NoClassDefFoundError: org/apache/commons/math3/stat/regression/OLSMultipleLinearRegression
java.lang.NoClassDefFoundError: org/apache/commons/math3/special/Erf
知道为什么会这样吗

我只是不计算当添加的.jar中确实存在两个类时,
-classpath
选项如何解决一个类而不是另一个类的“未找到类”错误


还是我错误地调用了.jar?

这里有问题吗?我编辑并澄清了。
-classpath
在使用
-jar
,IIRC时无效。是的,刚刚选中:“当您使用此选项时,JAR文件是所有用户类的源,其他用户类路径设置被忽略。”因此,我很惊讶它会有任何效果。请确保将所有依赖项作为类路径属性包含在JAR中的MANIFEST.MF文件中。@JonSkeet如果是这样,我是否可以合并两个jar,生成一个已经包含库的myjar.jar?怎么做?