NoClassDefFoundError with Apache commons math



我想使用Apache Commons中的PoissonDistribution,但总是得到一个NoClassDefFoundError错误。

代码:

import org.apache.commons.math3.distribution.PoissonDistribution;
public class Test {
public static void main(String[] args) {
PoissonDistribution p = new PoissonDistribution(5.0);
}
}

错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/math3/distribution/PoissonDistribution
at Test.main(Test.java:6)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.math3.distribution.PoissonDistribution
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 1 more

到目前为止我所做的:commons-math3-3.6.1.jar文件位于我的项目文件夹中的一个文件夹中,我通过Project->Properties->Java Build Path->Libraries添加了jar文件,然后在旁边的"订单和导出"选项卡中选择了jar文件。

谢谢你的帮助!

好吧,巧合的是,我找到了解决方案:

我的问题是,我将JAR添加到Modulepath,而不是项目属性中的Classpath。

在我的例子中,我忘记了添加Apache库的一部分,它的名称是:commons-math3-3.6.1.jar

确保您的PoissonDistribution类在Java Classpath中可用。我猜你的罐子不会正确地加入罐子。

添加以下步骤以添加jar:

  • Eclipse,右键单击项目
  • 生成路径
  • 添加外部JAR
  • 把罐子给我
  • 好的

最新更新