【发布时间】:2020-01-28 17:04:38
【问题描述】:
编辑:请参阅下面的编辑。这个问题仍然需要注意,因为即使在清理之后,按照建议更改 pom 也不会改变行为。
我有一个带有插件的 Java Maven 项目,可以生成一个迄今为止运行良好的独立 JAR。在 pom.xml 中,
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<mainClass>ptcs.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
我最近想使用 org.apache.commons.math3 中的 Fraction 类,所以我做了以下操作。在我的代码中,
import org.apache.commons.math3.fraction.Fraction;
添加对 pom.xml 的依赖,
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
编辑:最初测试在 pom 中,但我删除了它。行为没有变化。我也清理了项目。
我正在使用 VS Code,它在 public static void main 上方放置了一个小“运行”按钮。该运行按钮有效,但尝试运行 JAR 报告没有 Fraction 的类定义。同样运行mvn java:exec ... 报告同样的问题。
我做错了什么,为什么在添加此依赖项之前它可以完美运行?
我在运行 JAR 时遇到的错误是
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache
/commons/math3/fraction/Fraction
at ptcs.App.main(App.java:39)
Caused by: java.lang.ClassNotFoundException:
org.apache.commons.math3.fraction.Fraction
at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLo
aders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 1 more
【问题讨论】:
标签: maven