」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 從命令列運行時,如何解決 Maven 中的「NoClassDefFoundError」問題?

從命令列運行時,如何解決 Maven 中的「NoClassDefFoundError」問題?

發佈於2024-11-08
瀏覽:358

How can I resolve the \

透過Shade 外掛程式解決NoClassDefFoundError 的依賴關係

第一次使用Maven 時,Eclipse 和命令列使用之間可能會出現不一致,原因是依賴管理。儘管在 Eclipse 中成功建立了 Maven 專案並新增了依賴項,但透過命令列執行專案可能會導致 NoClassDefFoundError。

預設情況下,Maven 會單獨打包依賴項,並且不會將它們包含在編譯的 JAR 檔案中。此遺漏會導致 Java VM 在執行期間嘗試定位庫類別時失敗。

maven-shade-plugin 提供了更有效的解決方案,而不是手動將程式庫新增至類別路徑。它創建一個“uber-JAR”,將應用程式類別與所需的庫程式碼組合在一起。

要實現此目的,請將以下插件配置新增至您的 POM:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.5.2</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
        </execution>
    </executions>
</plugin>

新增此設定後,重新執行下列指令:

$ mvn package
$ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App

對於高階設定選項,例如指定包含的JAR 或可執行JAR 文件,請參閱maven-shade-plugin 網站上的「範例」部分。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3