[英]ClassNotFoundEcception when running jar through Terminal (or command prompt)
所以我知道有很多这样的问题,我已经解决了所有这些问题,但我似乎找不到像我这样的问题。
基本上,我有一个带有很多 Maven 依赖项的 Java 项目。 当我使用 IntelliJ 运行它时,该项目编译并运行得很好,但现在我试图通过终端(或命令提示符)运行它。 为了做到这一点,我运行了 mvn package 以便我可以获得一个 jar 文件,当我运行java -jar server.jar
,我得到了经典的 ClassNotFoundEcception 异常。 就我而言,它说它是:
Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
当我通过(暂时)注释掉使用这个类的代码部分来抑制它时,我最终得到了另一个类的相同错误。 在这一点上,我知道我需要某种文件夹(如果我错了,请纠正我,但我相信它被称为 CLASSPATH),其中包含每个依赖项的 .jar。 谁能以清晰的方式向我解释这种情况,以及我应该如何组织每个依赖项的 .jar 文件(如果这甚至是我必须做的来修复我的错误)。
org.apache.commons.fileupload.FileItemFactory
和最有可能的其他依赖项不在类路径中。 Intellij 自动在类路径中包含依赖项,这就是它工作的原因。
要从 CMD 运行包含所有 depedecies 的程序,请在pom.xml
定义以下插件:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
并运行:
mvn clean package
java -jar server.jar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.