Java14でのjpackageのガイド
1. 概要
このチュートリアルでは、 Java14で導入されたjpackageという名前の新しいパッケージツールについて説明します。
2. 序章
jpackage は、Javaアプリケーション用のネイティブインストーラーとパッケージを作成するためのコマンドラインツールです。
これは、jdk.incubator.jpackageモジュールの下のインキュベーション機能です。 つまり、ツールのコマンドラインオプションまたはアプリケーションレイアウトはまだ安定していません。 安定すると、Java SEプラットフォームまたはJDKは、LTEリリースにこの機能を組み込みます。
3. なぜjpackage?
インストール可能なパッケージをエンドユーザーに提供するためのソフトウェアを配布する際の標準的な方法です。 このパッケージは、ユーザーのネイティブプラットフォームと互換性があり、内部の依存関係とセットアップ構成を非表示にします。 たとえば、macOSではDMGファイルを使用し、WindowsではMSIファイルを使用します。
これにより、エンドユーザーに馴染みのある方法で、アプリケーションの配布、インストール、およびアンインストールが可能になります。
jpackage を使用すると、開発者はJARファイル用にこのようなインストール可能なパッケージを作成できます。 ユーザーはJARファイルを明示的にコピーしたり、アプリケーションを実行するためにJavaをインストールしたりする必要はありません。インストール可能なパッケージがこれらすべてを処理します。
4. パッケージングの前提条件
jpackageコマンドを使用するための主な前提条件は次のとおりです。
- パッケージ化に使用するシステムには、パッケージ化するアプリケーション、JDK、およびパッケージ化ツールに必要なソフトウェアが含まれている必要があります。
- また、jpackageで使用される基本的なパッケージツールが必要です。
- LinuxでのRPM、DEB:Red Hat Linuxでは、rpm-buildパッケージが必要です。 Ubuntu Linuxでは、fakerootパッケージが必要です
- macOS上のPKG、DMG: –mac-sign オプションを使用してパッケージの署名を要求する場合、および –icon オプションを使用する場合は、Xcodeコマンドラインツールが必要です。 DMGイメージをカスタマイズする
- EXE、Windows上のMSI:Windowsでは、サードパーティのツールWiX3.0以降が必要です
- 最後に、アプリケーションパッケージはターゲットプラットフォーム上に構築する必要があります。 つまり、アプリケーションを複数のプラットフォーム用にパッケージ化するには、各プラットフォームでパッケージ化ツールを実行する必要があります。
5. パッケージの作成
アプリケーションJARのサンプルパッケージを作成しましょう。 上記のセクションで述べたように、アプリケーションJARは事前に構築されている必要があり、jpackageツールへの入力として使用されます。
たとえば、次のコマンドを使用してパッケージを作成できます。
jpackage --input target/ \
--name JPackageDemoApp \
--main-jar JPackageDemoApp.jar \
--main-class com.baeldung.java14.jpackagedemoapp.JPackageDemoApp \
--type dmg \
--java-options '--enable-preview'
使用される各オプションを見ていきましょう。
- –input :入力jarファイルの場所
- –name :インストール可能なパッケージに名前を付けます
- –main-jar :アプリケーションの開始時に起動するJARファイル
- –main-class :アプリケーションの開始時に起動するJARのメインクラス名。 メインJARのMANIFEST.MFファイルにメインクラス名が含まれている場合、これはオプションです。
- –type :どのような種類のインストーラーを作成しますか? これは、jpackageコマンドを実行しているベースOSによって異なります。 macOSでは、パッケージタイプをDMGまたはPKGとして渡すことができます。 このツールは、WindowsではMSIおよびEXEオプションをサポートし、LinuxではDEBおよびRPMオプションをサポートします。
- –java-options :Javaランタイムに渡すオプション
上記のコマンドは、JPackageDemoApp.dmgファイルを作成します。
次に、このファイルを使用して、macOSプラットフォームにアプリケーションをインストールできます。 インストール後、他のソフトウェアと同じようにアプリケーションを使用できるようになります。
6. 結論
この記事では、Java14で導入されたjpackageコマンドラインツールの使用法について説明しました。