[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でも動作します。
exe4jはwindowsサービスを作成する設定(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プログラマにはうれしいことですね。
javaを利用してwindowsサービスを手軽につくれるので、javaプログラマは楽できると思います。
この記事のヒントは、eclipseのTPTPプロジェクトでクライアントエージェントをインストール際に、windowsのコマンドで、manageserviceを使用していることがヒントになりました。
thinsitの記事
javaからwindowsのexeを作成するのには、exe4j製品です。exe変換にはその他にフリーのものもあるようです。探しみるのもよいでしょう。
無茶苦茶高い製品ではないので、思わずオンラインで購入してしまいました。
もちろんmac osxでも動作します。
exe4jはwindowsサービスを作成する設定(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
でもできますよ。
情報ありがとうございます!!
機会があるとき試してみたいと思います。