jpackage
Javaのコードにjlinkなどで作ったのと同じようなJREなどランタイム系をバンドルしたインストーラを作成できる仕組み
https://docs.oracle.com/javase/jp/14/docs/specs/man/jpackage.html
インストーラ形式で最小JREとjar、実行用コマンドをパッケージするかたち
exeだけ欲しい場合はjlink ?
JDK 8まであったJava Web Start の代替機能
Java 16ぐらいで使える?
JavaFXのものが由来?
Windows, Linux, Mac それぞれでインストーラなどを作ることができる、らしい。クロスプラットフォームではないので各環境が必要。
コマンド系よりはUI系をインストーラにまとめたいときに有用
Java 9以降のmodule形式のjarを用意する。
Windows
WiX Tool がひつよう?
https://wixtoolset.org/
https://github.com/wixtoolset/wix3/releases
バッケージにするデータを1つのフォルダにまとめる
main class のあるjarファイルも含める
maven-shade-plugin などでまとめると簡単
$ jpackage --type msi --win-menu --input ./target --name name --main-jar app.jar
--type msi の方が exe より小さいのでおすすめ?
--win-menu メニューに追加する場合
--win-console コンソール形式の場合
--input まとめたフォルダ型のインストール? 入力フォルダ
--main-jar main のあるjar
--name アプリの名称 メニューに登録されたりいろいろ
--dest インストーラ出力先
JavaFXの例しか出てこないので謎が多い
Maven
https://rheb.hatenablog.com/entry/2023/10/25/110538