ホームページ >Java >&#&チュートリアル >コマンドラインから実行する際に Maven 依存関係で「NoClassDefFoundError」を修正するにはどうすればよいですか?
「Maven 依存関係での NoClassDefFoundError」を修正する方法
コマンド ラインから Maven プロジェクトを実行しようとすると、NoClassDefFoundError が発生する場合があります
このエラーの主な理由は、Maven がビルドする JAR ファイルに依存関係を自動的に含めないことです。これを解決するには、ライブラリ コードを出力 JAR ファイルに「シェーディング」する必要があります。
これを実現するには、maven-shade-plugin を使用できます。これを POM に追加する方法は次のとおりです。
<code class="xml"><project> ... <build> <plugins> <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> </plugins> </build> ... </project></code>
このプラグインは、クラスとライブラリの依存関係を含む「uber-JAR」を自動的に作成します。
プラグインが登録されると、次のコマンドを実行できます:
<code class="sh">$ mvn package $ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App</code>
エラーが解決しない場合は、含める JAR を指定するか、実行可能な JAR ファイルの Main-Class を設定するように、シェード プラグインをさらに構成できます。詳細については、maven-shade-plugin のドキュメントを参照してください。
以上がコマンドラインから実行する際に Maven 依存関係で「NoClassDefFoundError」を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。