以下の内容は間違っている可能性が出てきたので現在検証中です。
現時点で正常に作用したので恐らく間違いではないです。
ライブラリの自作手順
開発環境
- Windows 7 ( x86 )
- Intellij IDEA 2018.2.8
- Java 8
(例として「JarIOtools」というライブラリを作るとする)
※内容は既に完成しているものとする。
ライブラリは必ず何かしらのパッケージに含めた方が名前空間的にも良い。
(デフォルトパッケージにしない事)
- [プロジェクト構造] の [成果物] をクリック
- [+]をクリックして出たポップアップの中から [Jar] - [空] を選択
- 名前には設定したいライブラリ名(例では「JarIOtools」)を入力(デフォルトでは生成されたJarファイルのディレクトリ名にもなる)
- [出力レイアウト] - [+] をクリックして出たポップアップの中から [モジュール出力] を選択し、パッケージ名(例では「JarIOtools」)をクリック
- 同じく [出力レイアウト] - [+]をクリックして [モジュールソース] を選択し、パッケージ名(例では「JarIOtools」)をクリック
- [プロジェクト構造] を閉じて [ビルド] - [成果物のビルド]をクリックして出たポップアップの中から [(さっき設定したライブラリ名)] - [build] を選択
- これで [out] - [artifacts] - [mySwingUtils] に「mySwingUtils.jar」ファイルが生成される
以下の様に[artifacts]フォルダの下のフォルダ名はライブラリ名になる。
そのフォルダの下にJarファイルが生成される。
[out]
└──[artifacts]
└──[JarIOtools] <--このフォルダの名前は3で設定した名前
└──[JarIOtools.jar]
グローバルライブラリへの設定方法
- [プロジェクト構造] - [グローバルライブラリ] をクリック
- [+] をクリックして出たポップアップの中から [Java] を選択
- 上記の様に生成されたJarファイルを選択すれば完了!
プロジェクトにグローバルライブラリから追加する方法
- [プロジェクト構造] - [モジュール] をクリック
- [依存関係] - [+] をクリックして出たポップアップの中から [Library...] を選択
- グローバルライブラリにあるライブラリ一覧が表示される
- 追加したいJarファイルを選択すれば完了!
きちんと追加し、コード補完にも出てくる。それなのに実行時に
java.lang.NoClassDefFoundError
が発生する場合、マニフェストファイルが正常に更新されていない可能性があります。
[META-INF]
┗━ MANIFEST.MF
その際は「META-INF」フォルダ内の「MANIDEST.MF」ファイルを削除し、
[プロジェクト構造] - [成果物] 内のJarを削除してから、再度Jarを設定してください。
推測ですが、原因は新しく追加したライブラリ用JarファイルがMANIFEST.MFに追加されていないため、ビルド時にJarファイルにライブラリが追加されず、実行時にクラスが見つからないエラーが発生していたと思われる。
参考元