今、Java + Swingやっています。

大昔にJavaアプレット(AWT)でカレンダー作っていました。
一年か二年前にそれをJavaアプリケーションに移植しようとしていて完成まであとちょっとのところで放置していました。
動いてはいたけども祝日などのチェックを広範囲にするのが面倒で。
それを最近、祝日のチェックもしてJava+Swingアプリーションに移植して改造も加えている途中です。
どこかでやめればいいんだけど、つい余計かも知れないことまでしはじめて終わりが見えません。
しなければいいんだけど内蔵(単体動作も可)の簡易ウェブブラウザ(Java+Swing)も作り始めてしまった。
このまま鍋田辞書をJavaへ移植するのもいいかと思っている。
技術的な問題がないことがほぼはっきりいるし。
少しやりかけて長らく放置のQtをどうするかも考えないといけない。
FireMonkeyは少なくとも鍋田辞書の移植に使うのはだいぶ前に諦めた。
Swingは今は古いものになっている。
Swingの後継はJavaFXxだがやるつもりがない。
あまり調べていないのでJavaFXのことはよく分からない。

javapackager

javapackagerというすごいコマンドがJDKに含まれているを今日知った。
なんで今まで知らなかったんだろう。
jarファイルを作れるのはjarコマンドでもできるので特にすごくはないが、
WindowsやMac OS、GNU/Linux(rpm/deb)のJREを含めたインストーラーを作れる。
(JREを含めずにインストーラーだけ欲しい場合には使えないような気がする。)
JREはどのJavaアプリケーションからでも使えるように普通にOSにインストールされるのではなく、
配布自作ソフト専用でその一部として陰に隠れた状態でインストールされる。
(自作ソフトがインストールされた場所の下のディレクトリにJREがあるから見れば見れるが、コントロールパネルのプログラムの追加と削除の一覧の中には出て来ないしパスも通っていない。)
インストーラーはWindowsの場合はexeまたはmsiを作れるみたいたが両方とも別途ソフトのインストールが必要。
exeの場合はInno Setupというソフトをインストールし、Inno Setupのパスを環境変数PATHに追加する必要がある。
Javaで作ってあってもWindows専用ソフトして配布できるようになる。
確実にWindowsで動作するのでJava製と言う必要もなくなる。(言ったほうが親切だが)
小さい自作ソフトで試してにやってみるとサイズがインストーラー(exe)で46MB、展開後は177MBになった。
まあサイズは大きくなるけどもJavaをインストールしていない人が多く、Javaをインストールしたがらない人がいる以上は仕方ないとは思う。