web-dev-qa-db-ja.com

Javaアプリケーションをサービスとして実行

Javaアプリケーションをサービスとして実行したいのですが、残念ながら Java Service Wrapper (これは表示されるようなもの)を使用できないという制限があります優れたツールになるため)。

外部アプリケーションに依存せずに、実行可能なJARをサービスとして実行する方法はありますか?現在サービスをインストールしていますが、開始できません。これは私が行き詰まっていて、JSWに関する情報以外にGoogleで何も見つけることができなかったところです。

22
JasCav

Java Service WrapperのLGPLクローンがあります: http://yajsw.sourceforge.net

BTW、IANAL、しかし私はJSWの人々がFUDを広めていると思います、そして彼らのソフトウェアはGPLライセンスの下で商用アプリケーションのサービスを有効にするために使用できるのと同じです。私はこれについて完全に間違っている可能性がありますが:)

12
ykaganovich

別のオプション、Apache CommonsDaemonのprocrun。

参照 http://commons.Apache.org/daemon/

11
cpierceworld

Windowsサービスとして実行する必要があるプログラムは、Windowsサービスマネージャーがそのサービスと通信するために使用する特定の機能を提供する必要があります。

この関数を直接実装するJVMがない限り(そして私は何も知らない)、何らかのラッパーが必要になります。

私は srvany をJavaベースのWindowsサービスに使用しました(基本的には、任意のプログラムをWindowsサービスとして実行でき、Javaで正常に動作します)

6
Wolfgang

私はまだ試していませんが、 Launch4j はあなたのニーズに合うようです。

2
dustmachine

次のように [〜#〜] nssm [〜#〜] を使用できます。

nssm install MyService "%Java_HOME%\bin\Java.exe" -jar "path\to\the\file.jar"
1
Anthony O.

もう1つのオプション winrun4j 。ライセンスはEclipseのCPLです。

1
Peter Smith

JSmoothはそれを行うことができ、antでスクリプト化できます。

私が見つけた最も簡単な方法は RunAsService でした。

同僚が [〜#〜] sc [〜#〜] というツールを勧めましたが、私は試しませんでした。

0
toba303