Maven 依存関係の NoClassDefFoundError を解決する
Maven は、Java プロジェクトの依存関係を自動的にダウンロードして管理できる、人気のあるビルド自動化ツールです。ただし、Maven で構築された JAR ファイルをコマンド ラインで実行すると、NoClassDefFoundError が発生する場合があります。
このエラーは通常、Maven がデフォルトで構築する JAR に依存関係をバンドルしないために発生します。クラスパスに依存関係がないと、Java 仮想マシン (JVM) はコードの実行時にライブラリ クラス ファイルを見つけることができません。
この問題を解決するには、- を使用してクラスパス上にライブラリを手動で指定します。 cpパラメータ。ただし、このアプローチは面倒な場合があります。
より効率的な解決策は、maven-shade-plugin を使用してライブラリ コードを出力 JAR ファイルにシェーディングすることです。このプラグインは、クラスとライブラリ クラスの両方を含む「uber-JAR」を自動的に作成します。
Maven-shade-plugin を POM ファイルに追加するには、次の手順に従います。
<code class="xml"><dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.2</version> </dependency></code>
<code class="xml"><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></code>
<code class="bash">mvn package java -cp target/jar-filename.jar your.main.class</code>
依存関係をシェーディングすることで、必要なすべてを含む実行可能な JAR を作成します。図書館。これにより NoClassDefFoundError が解決され、アプリケーションを独立して実行できるようになります。
以上がJAR ファイルの実行時に Maven 依存関係の「NoClassDefFoundError」を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。