web-dev-qa-db-ja.com

IntelliJのアーティファクトjarに外部ライブラリを追加するIDEA

IntelliJのプロジェクトに外部ライブラリを追加するにはどうすればよいですか?IDEA=========

プロジェクト構造から新しいJarアーティファクトを作成し、外部JARをライブラリに追加し、モジュールリストでチェックして、最終的にアーティファクトの出力に追加しました。これらはどれも機能しません。アプリケーションをビルドして実行しようとすると、エラーがスローされます。

Exception in thread "main" Java.lang.NoClassDefFoundError: <path of the class trying to use>

私は何が欠けていますか、これを完全に間違っていますか?

ここには2つのオプションがあります。

  • アーティファクトjarに依存関係を抽出し、アプリがすべての依存関係を持つ単一の実行可能jarになるようにします
  • Manifest.MFを介して依存jarをリンクし、それらをアプリケーションのメインjarの近くにコピーします

両方のアプローチを示すサンプルプロジェクトを準備しました: HelloWithDependencies.Zip

アーティファクトは、out\singleおよびout\linkedディレクトリに生成されます。

関連する構成:

single

linked

16
CrazyCoder

Mavenを使用してアプリケーションをビルドしている場合、これは外部ライブラリを追加する正しい方法ではありません。あなたはどちらか

  1. 以下のようにライブラリをインストールしますmvn install:install-file -Dfile=myJar.jar -DgroupId=com.yourproject -DartifactId=yourproject -Dversion={version} -Dpackaging=jar
  2. 説明されているようなシステムパスを使用します here

プロジェクトにjarを保持する必要がないため、オプション1をお勧めします。

1
GauravJ