所以我知道有很多這樣的問題,我已經解決了所有這些問題,但我似乎找不到像我這樣的問題。
基本上,我有一個帶有很多 Maven 依賴項的 Java 專案。當我使用 IntelliJ 運行它時,該專案編譯并運行得很好,但現在我試圖通過終端(或命令提示符)運行它。為了做到這一點,我運行了 mvn package 以便我可以獲得一個 jar 檔案,當我運行時java -jar server.jar,我得到了經典的 ClassNotFoundEcception 例外。就我而言,它說它是:
Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
當我通過(暫時)注釋掉使用這個類的代碼部分來抑制它時,我最終得到了另一個類的相同錯誤。在這一點上,我知道我需要某種檔案夾(如果我錯了,請糾正我,但我相信它被稱為 CLASSPATH),其中包含每個依賴項的 .jar。誰能以清晰的方式向我解釋這種情況,以及我應該如何組織每個依賴項的 .jar 檔案(如果這甚至是我必須做的來修復我的錯誤)。
uj5u.com熱心網友回復:
將org.apache.commons.fileupload.FileItemFactory在classpath中,最有可能其他的依賴都沒有。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-with-dependencies.jar
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/342614.html
上一篇:如何回傳JSONObject中除“空”值以外的所有值?
下一篇:zsh:找不到命令:php
