ホームページ  >  記事  >  Java  >  コマンドラインから実行する場合、Maven で「NoClassDefFoundError」を解決するにはどうすればよいですか?

コマンドラインから実行する場合、Maven で「NoClassDefFoundError」を解決するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-27 04:01:02820ブラウズ

How can I resolve the

NoClassDefFoundError の Shade プラグインによる依存関係の解決

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 Web サイトの「例」セクションを参照してください。

以上がコマンドラインから実行する場合、Maven で「NoClassDefFoundError」を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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