1. ホーム
  2. java

[解決済み] JAR内のJARを含むクラスパス

2022-05-18 12:39:23

質問

Java の classpath を指定して、別の JAR ファイルに含まれる JAR ファイルを含めることはできますか?

どのように解決するのですか?

アプリケーションとその必要なライブラリを含む単一の jar を作成しようとしている場合、(私が知る限り) 2 つの方法があります。 1 つ目は 1 つの Jar で、これは特別なクラスローダーを使って、jarの入れ子を可能にします。 もうひとつは UberJar , (または シェード ) で、これは含まれるライブラリを分解し、すべてのクラスをトップレベルのjarに置きます。

UberJar と Shade はそれぞれ Maven1 と Maven2 のプラグインであることも述べておきます。 後述するように、アセンブリ プラグイン (実際にはより強力ですが、適切に設定するのがはるかに困難です) を使用することもできます。