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コマンドを使用するための主な前提条件は次のとおりです。

  1. パッケージ化に使用するシステムには、パッケージ化するアプリケーション、JDK、およびパッケージ化ツールに必要なソフトウェアが含まれている必要があります。
  2. また、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以降が必要です
  3. 最後に、アプリケーションパッケージはターゲットプラットフォーム上に構築する必要があります。 つまり、アプリケーションを複数のプラットフォーム用にパッケージ化するには、各プラットフォームでパッケージ化ツールを実行する必要があります。

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コマンドラインツールの使用法について説明しました。