ホームページ  >  記事  >  Java  >  複数の JAR を 1 つの実行可能な JAR にマージするにはどうすればよいですか?

複数の JAR を 1 つの実行可能な JAR にマージするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 19:13:02635ブラウズ

How to Merge Multiple JARs into One Executable JAR?

複数の JAR を 1 つに結合する

複数の JAR ファイルを 1 つの実行可能な JAR に統合しようとする場合、開発者は依存関係の組み込みに関する課題に遭遇することがよくあります。 、メインクラスのマニフェストを設定し、実行可能性を確保します。幸いなことに、さまざまなツールとテクニックにより、このプロセスが簡素化されます。

Ant の Zipfileset の利用

Ant の zipfileset 要素を使用すると、複数の JAR ファイルを簡単にマージできます。 include 属性を利用すると、各ソース JAR から特定のファイルを選択してインクルードできます。 jar タスクは、コンテンツを結合した新しい JAR ファイルの作成を処理します。

マニフェスト属性を使用したカスタマイズ

メイン クラス マニフェストを指定し、JAR を実行可能ファイルとして指定するには、マニフェスト属性タスクを利用します。このタスクでは、JAR 内のアプリケーションのエントリ ポイントを識別する Main-Class 属性を設定できます。さらに、Executable 属性を true に設定すると、JAR ファイルの直接実行が許可されます。

Ant を使用した例

Ant を使用したプロセスを説明するために、以下のビルド ファイルを検討します。

<code class="xml"><project name="merge-jars" default="merge">

    <taskdef name="jar" classname="org.apache.tools.ant.taskdefs.Jar">
        <classpath>
            <fileset dir="${ant.home}/lib">
                <include name="*.jar" />
            </fileset>
        </classpath>
    </taskdef>

    <target name="merge">
        <jar jarfile="merged.jar">
            <manifest>
                <attribute name="Main-Class" value="my.main.Class" />
            </manifest>
            <zipfileset src="first.jar" includes="**/*.java **/*.class" />
            <zipfileset src="second.jar" includes="**/*.java **/*.class" />
        </jar>
    </target>

</project></code>

このビルド ファイルを実行すると、「merged.jar」という名前の新しい JAR ファイルが作成されます。 「first.jar」ファイルと「Second.jar」ファイルの内容を組み込みます。 JAR は指定されたメイン クラスで構成され、実行可能として指定されます。

追加のツールとテクニック

Ant 以外にも、他のツールやアプローチが JAR ファイルのマージに役立ちます。 :

  • JarSplice: JAR ファイルのマージを簡素化し、メイン クラスを指定します。
  • Degree: JAR ファイルのマージとマニフェストのカスタマイズを支援するコマンドライン ツール。
  • Fat JAR: 必要なすべての依存関係が 1 つの JAR 内にバンドルされ、追加の外部コンポーネントが不要になる手法。 JARs.
  • Maven Shade Plugin: JAR ファイルをマージし、依存関係の競合に対処するプラグイン。

以上が複数の JAR を 1 つの実行可能な JAR にマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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