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をインストールしたがらない人がいる以上は仕方ないとは思う。