ExcelsiorJETについて

私はJavaプログラマなので、メイン言語はJavaである。
Javaの場合、コンパイル後にjarという拡張子のファイルが生成される。
問題は、このjarファイルから逆コンパイルで簡単に元のソースコードが復元されてしまう点だ。
製品を作っている最中からこの欠点があるのは知っていたが、どうにかなると楽観的だった。
しかしいくら調べても有効な対策は見つからなかった。
Webサービスならばモジュールをダウンロードさせないので問題ないが、
デスクトップアプリでは何らかの対策が必要となる。

幸い、ExcelsiorJETという製品に巡り合った。
https://www.xlsoft.com/jp/products/jet/index.html

これはjarをEXE形式のネイティブ実行ファイルに変換してくれるツールだ。
少々値が張るが、事業に不可欠の為思い切って購入した。

弊社の製品であるCompare File Manager(以下CFM)ではJETを使っている。
もしこのJETのような製品がなかったら、非常にまずい事態になっていただろう。
そう思うと幸運である。

JETの唯一の欠点は、アプリの起動が遅くなるという点だ。
これはJava9のJigsowを使用することで若干緩和されるだろうが、
当分解決しないだろう。これはJETを使用する限り避けられないだろう。

実はJava9からAOTコンパイラが使用可能になっているらしい。
AOTコンパイルとはjarファイルをEXE形式に変換する機能のことで、
JETもAOTコンパイラの一種である。
私はまだ試していないが、公式のJDKでAOTコンパイルが使えるのならば、
JETは不要になるかもしれない。