ホームページ  >  記事  >  Java  >  コマンドラインから実行する際に Maven 依存関係で「NoClassDefFoundError」を修正するにはどうすればよいですか?

コマンドラインから実行する際に Maven 依存関係で「NoClassDefFoundError」を修正するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-25 09:07:02228ブラウズ

How to Fix

「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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。