torutkのブログ

ソフトウェア・エンジニアのブログ

jpackageで作る自己完結型アプリケーションの設定ファイル書式がJDK 14と15で変わっていた

JDK 14にてincubatorの位置づけで導入された jpackage(自己完結型アプリケーションパッケージを作成する等のツール)の設定ファイルが、JDK 15では認識されない事象が発生しました。

jpackageコマンドで自己完結型アプリケーションを作成すると、アプリケーションの属性、JavaVMオプション、コマンドラインオプション等を記載する設定ファイルが生成されます。(アプリケーション名に拡張子.cfgを付けたファイル)

JDK 14で作成したときの設定ファイル例を次に示します。

[Application]
app.name=AnalogClock
app.version=0.6.0
app.runtime=$ROOTDIR\runtime
app.identifier=com.torutk.gadget.analogclock
app.classpath=
app.mainmodule=com.torutk.gadget.analogclock

[JavaOptions]
-Xms32m
-Xmx128m
-Xss256k
-XX:TieredStopAtLevel=1
-XX:CICompilerCount=2
-XX:CompileThreshold=1500
-XX:InitialCodeCacheSize=160k
-XX:ReservedCodeCacheSize=32m
-XX:MetaspaceSize=12m
-XX:+UseSerialGC

[ArgOptions]
--x=-144
--y=-240
--scale=0.7
--fps=5
--on-top=true

JDK15で作成したときの設定ファイル例を次に示します。

[Application]
app.mainmodule=com.torutk.gadget.analogclock/com.torutk.gadget.analogclock.AnalogClockApp

[JavaOptions]
java-options=-Xms32m
java-options=-Xmx64m
java-options=-Xss256k
java-options=-XX:TieredStopAtLevel=1
java-options=-XX:CICompilerCount=2
java-options=-XX:CompileThreshold=1500
java-options=-XX:InitialCodeCacheSize=160k
java-options=-XX:ReservedCodeCacheSize=32m
java-options=-XX:MetaspaceSize=12m
java-options=-XX:+UseSerialGC
java-options=--module-path
java-options=$APPDIR\mods

[ArgOptions]
arguments=--x=-144
arguments=--y=-240
arguments=--scale=0.7
arguments=--fps=5
arguments=--on-top=true

[JavaOptions]と[ArgOptions]の項のプロパティの記述がJDK 14のjpackageで生成したものと、JDK 15のjpackageで生成したものとが変わっています。

jpackageは、近日リリース予定のJDK 16で正式導入となります。現在JDK 16のリリース候補版が公開されています。それに含まれるjpackageで作成してみたところ、JDK 15変更と同じ形式となっていました。