0

我将 apache Math 3.3 jar 库复制到我的 intellij 项目文件夹中,然后通过“添加到库”选项将其添加到我的项目中。

虽然一切编译和构建都很好,但当我运行项目的 jar 时,我从 apache 数学库导入的类得到 NoClassDefFoundError。

有什么解决办法吗?

谢谢

编辑

以下是我得到的错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/math3/stat/descriptive/rank/Percentile
    at Main.main(Main.java:80)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.math3.stat.descriptive.rank.Percentile
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 1 more

模块对话框的屏幕截图在这里:http: //imgur.com/xQ102rT

编辑 2:我使用“添加到库”安装了 apache jar,然后选择“类”选项。

编辑 3:要制作 jar,我转到 Build -> Build Artifacts -> Build。

4

1 回答 1

1

问题是由于这句话:

当我运行我的项目的 jar

如果您使用的是 java 的标准 jar 机制,它不会产生依赖关系。所以你仍然需要在类路径中添加依赖。IntelliJ 的功能主要用于使用 IntelliJ 的运行选项运行。如果您改为通过命令行运行 jar,则需要将依赖项添加到类路径中。

如果您使用 intelliJ 进行 jaring,则该 jar 被视为工件。您需要将该库添加到您的构建工件中。转到构建 > 构建工件。将鼠标悬停在 jar 上并选择编辑。

您应该在“可用元素”部分看到该库。只需双击它,它就会被添加到您的 jar 中。然后点击确定。

于 2014-07-17T20:18:48.240 回答