I am getting this error: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/csv/CSVFormat

I am getting this error: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/csv/CSVFormat

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-csv</artifactId>
        <version>1.8</version>
    </dependency>
</dependencies>

出于某种原因,每当我尝试 运行 我的 maven 项目时,我都会收到此错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/csv/CSVFormat.

但我检查了我的类路径,它是正确的。我检查了我的依赖项,它们是正确的。

我认为可能是导致异常的命令。您如何 运行 在类路径中使用外部 jar 的 Maven 项目?

java -cp target/classes packageName 

对吗?

How do you run a maven project with an external jar in the classpath?

java -cp target/classes packageName

您的类路径需要包含您的代码所依赖的库的 JAR 文件。例如:

 java -cp target/classes:path/to/commons-csv-1.8.jar packageName

如果 commons-csv 具有 运行时间依赖性,您还需要包含它们的 JAR 文件。 (但根据它的 POM 文件,它没有……)


或者,您可以使用 mvn exec:java ... 到 运行 您的应用程序,如本 Whosebug 问答中所述:Maven Run Project.