« orca 5.2 に移行 | トップページ | Java 17 への移行(2) - WildFly 27.0.2 の準備 »

2023年1月28日 (土)

Java 17 への移行(1) - monsiaj

Java 1.8 (java 8) の Extended Support 終了期限は 2030年12月に設定されている。思い返せば、15年前に OpenDolphin を初めて動かしたのが java 1.5 で、それから 1.8 までバージョンアップしてきた。そして、1.8 サポート終了の 2030年といえば、自分はもう結構な年になっているし、まだ仕事をしているかどうかも怪しい。もしかしたら java 1.8 が人生最後の java かもしれないと思っていた。

しかし、apple silicon の登場により状況が変わった。当院の OpenDolphin は java 1.8 + javafx8 なのだが、このままでは apple silicon にネイティブ対応できない。Rosetta エミュレーションで動くことは動くが、rosetta もいつまでサポートされるか分からない。Apple silicon ネイティブ対応の java を検討したところ、javafx を含めてネイティブ対応しているのは java 17 からであることが判明した。というわけで、壮大な java 17 移行計画がスタートしたのであった。

まずは、自院向けにカスタマイズした monsiaj-pns を java 17 で動かすことから始めてみた。Java 17 では jre がなくなっており、jre に当たる環境を自分で jlink で作って、jpackage でそれを取り込んだ mac 用のアプリを作るというシステムになっている。つまり、java がインストールされていなくても、普通のアプリのように単体で動くアプリが作れる。さらに、作成される jre は jar が動く最小限の環境でいいため、jre を組み込んでも、アプリの容量はそれほど大きくならない。進化している、おそるべし java 17。

monsiaj のコードはそのままコンパイラが通ったので、pom.xml に jlink, jpackage の処理を書き加えて、無事 mac 用のアプリを作ることができた。ついでに、maven の profile で mac と windows を切り替えて、windows 用の msi インストーラも作れるようにしてみた。(wix toolset が必要)

1_orca_update_apple

ソース

« orca 5.2 に移行 | トップページ | Java 17 への移行(2) - WildFly 27.0.2 の準備 »

OpenDolphin」カテゴリの記事