Antで任意のバッチファイルを実行する
exewrapというソフトを使うと、jarファイルを実行可能な.exeファイルにラッピングしてくれる。
このソフトはコマンドラインで使うのでバッチファイルを書いておくのが現実的なのだが、AntでJavaアプリをJarにパックした後で自動的にexeへの変換をしてくれるとと素敵だ。というわけでそのやり方は以下のとおり。
Exewrap.bat
c:\programs\dev\exewrap\exewrap.exe -g MyApp.jar
Antのbuild.xml
(略) <target name="exewrap" depends="packtojar"> <exec executable="cmd"> <arg value="/c"/> <arg value="Exewrap.bat"/> </exec> </target>
antではexecタスクを使うと任意のコマンドを実行できる。executable属性で実行ファイルを指定するのだが、バッチファイルの場合はcmdを実行し、それに /c batch.bat という形でパラメータとしてバッチファイル名を渡す必要があるようだ。
これはもちろんWindows環境でしか動かない。他のOSでexecタスクを使う場合についてはAntマニュアルで説明がある。
ちなみにexewrapではJavaアプリからサービスとして動くアプリまで作れてしまうので面白い。