プログラマメモ2 - programmer no memo2

[java]windowsサービスをjavaで作成してみる 2006/08/03
2006/11/26

javaを利用したwindowsサービスの作成してみます。

javaを利用してwindowsサービスを手軽につくれるので、javaプログラマは楽できると思います。



この記事のヒントは、eclipseのTPTPプロジェクトでクライアントエージェントをインストール際に、windowsのコマンドで、manageserviceを使用していることがヒントになりました。



thinsitの記事



javaからwindowsのexeを作成するのには、exe4j製品です。exe変換にはその他にフリーのものもあるようです。探しみるのもよいでしょう。



無茶苦茶高い製品ではないので、思わずオンラインで購入してしまいました。

もちろんmac osxでも動作します。



exe4jwindowsサービスを作成する設定(executable type)ができます。



ここから手探り状態でやって単に動いたというレベルなので、技術的に正しくない可能性があります。



手順は、exe4jを利用してサービスを作成します。その際にexeの名前を、ACWinService.exeとします。



次にサービスexeを格納するディレクトリを作成します。

仮に%SERVICE_HOME%としますが、ディレクトリ(ファイル)の構成は%SERVICE_HOME%\bin\ACWinService.exe

とします。



コマンドプロンプトで下記のコマンドを利用して登録します。



manageservice add "サービス名" "%SERVICE_HOME%"





サービスを削除する場合は、



manageservice remove "サービス名"





最後に、windowsの管理コンソールでサービスの開始を行えばサービスとして起動します。

実験した環境は、windowsXP上で行いました。



サービスを削除する場合は、管理コンソールでサービスを停止させた状態で行います。



実用として採用するには、いくつか細かい点をクリアしないといけないかもしれません。

例えば、サービスの停止処理などです。



javaでwindowsサービスが手軽に作成できるというのはjavaプログラマにはうれしいことですね。

:

匿名

サービスの追加方法ですがmanageserviceを使わなくても、
例えばexe4jでACWinService.exeをサービスとして作成した場合は
ACWinService.exe --install
でもできますよ。

ugo.nakawaka

情報ありがとうございます!!
機会があるとき試してみたいと思います。