実行可能jarを作るときにjarを解凍したくない(が結局する)


未完成

課題

実行可能jarを作る際に、依存jarを解凍して、jar直下に組み込んでいる。
このため、依存ライブラリが多いほど、解凍時間が莫大となる。

依存jarをそのままjar直下に組み入れ、それをクラスパスに追加する形で起動したい。

StackOverflowの回答

https://stackoverflow.com/questions/12357136/reference-jars-inside-a-jar
上記で引用されている公式リンク
https://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

どうやら、jar内のjarをクラスパスへ追加する方法は提供されていないようにみえる。
カスタムコードを記述し、実現せよとのことらしい。

現状

gradleを用いれば、1jarにプロダクトソースと依存jarを集約することは可能である。
(が使えるとは言っていない)

どうするか

・めんどいので解凍、組み込みの現状実装を利用する
 実行可能Jarとして1ファイルで提供する場合はこれ

・よく見られるlibフォルダに依存jarを集約して、Manifestで読み込む
 自分用にはこれ。

・jar内にjar組み込み、main内に内包jarをクラスパスへ追加処理を組み込む
 やらない