jpackageがJava16から正式版になって、Javaプログラムをexe化できるようになったそうだ。以前はexewrapを試していたが、どうもうまく動かなかったので途中であきらめた。また、jpackageは問題が解決していないとも言われているのでその辺を試してみようと思う。Java17がLTS長期サポートのバージョンでJAVA18から標準でutf-8になるのでそのあたりに何かがあるかな。
exewrapを使っていた時の処理
exewrapでのEXE化はjlinkでjarで使っているjavaモジュールを調べて、jmodsでモジュールを切り出して、exewrapで実行ファイル化する。下のような方法で実行ファイルとjre-minを作っていた。
C:\pleiades\java\11\bin\jlink --compress=2 --module-path "C:\pleiades\java\11\jmods" --add-modules java.base,java.datatransfer,java.desktop --output jre-min
exewrap.exe -i AozoraEpub3.ico -v 1.1.1.10 -d "改造版AozoraEpub3 青空文庫テキスト→ePub3変換" -c kyukyunyorituryo -g AozoraEpub3.jar
jpackageではどうするのかを調べてみたが、インストーラーができてしまうので毎回インストールされて検証がやりにくい。
下記のようにやってみたらAozoraEpub3-1.1.1.14.exeができてダブルクリックするとインストーラーできて、灰をするとインストール場所の選択もなくインストールされた
jpackage --copyright kyukyunyorituryo --icon AozoraEpub3.ico --app-version 1.1.1.14 --description "改造版AozoraEpub3 青空文庫テキスト→ePub3変換" -n "AozoraEpub3" --main-jar AozoraEpub3.jar --input C:\Users\Owner\Desktop\AozoraEpub3-1.1.1b14Q
インストール先でAozoraEpub3.exeを実行するとfailed to launch jvmとでた
wixをインストールする必要がある。実行ファイルではなくてインストーラーができる、
公式マニュアルがあったので初めからそっちを読めばいいのだけど。