jpackage¶
はてなブログに使い方の一例を記載
https://torutk.hatenablog.jp/entry/2020/07/18/220341
はじめに¶
jpackageは、Javaプログラムをその実行環境(JavaVM)と一緒に梱包して、実行したい環境のプログラム配布形式に適する形にまとめるツールです。プログラム配布形式は、Windows OSであれば、MSIファイルが該当し、Linux OSであればRPMファイルあるいはDEBファイルが該当し、macOSであればDMGファイルが該当します。
jpackageツールで作成されたプログラム配布形式を実行する環境にインストールすれば、別途Javaランタイム等をインストールすることなくJavaのプログラムを実行することができます。
jpackageツールの概要¶
公式ドキュメント¶
- JDK 16ドキュメント(日本語)
https://docs.oracle.com/javase/jp/16/jpackage/index.html
jpackageの利用に必要なもの¶
jpackageツールは、JDK 14から同梱されています。JDK 14では Incubator の位置づけです。JDK 16で正式搭載となりました。
JDK 14以降(jpackage)の他に、インストール先の配布形式を作成するためのツールが必要です。
MSIファイルを作成するには、Windows環境とその上でWiX Toolsetが必要です。
RPMあるいはDEBファイルを作成するには、Linux環境とその上でrpm-buildパッケージあるいはfakerootパッケージが必要です。
DMGファイルを作成するには、macOS環境とその上でXcodeコマンドラインツールが必要です。
処理概要¶
アプリケーションJARファイル ライブラリJARファイル リソースファイル |
➡ | jpackage | ➡ | 配布形式ファイル |
JDK | ➡ |
アプリケーションの実行に必要なJavaランタイムの抽出母体となるJDK、アプリケーションJARファイル、およびサードパーティライブラリJARファイル、実行時に必要とする各種リソースファイルを入力とし、jpackageツールは配布形式ファイルを生成します。
配布形式ファイルは、それ自体でアプリケーションを実行するのに必要なものをすべて持っているので(自己完結)、実行するマシンにJavaラインタイムがなくてもアプリケーションを動かすことができます。
なお、jpackageツールはJDK 14で含まれていますが、アプリケーションの実行に使うJavaランタイムはJDK 14でなくても別なバージョンを配布形式に含めることもできます。
h2.