実行可能なJARファイルがあります。そのJARのWindowsサービスを作成することは可能ですか?実際には、起動時に実行したいだけですが、そのJARファイルをスタートアップフォルダーに配置したくはありません。レジストリにも配置したくありません。
この記事では、知っておく必要があることすべてを説明する必要があります。 "Running Java Windowsサービスとしてのアプリケーション" ;「 Java Service Wrapper = "( [〜#〜] yajsw [〜#〜] というコミュニティエディションがあります)
私がこれまでに見つけた最も簡単な解決策は、 Non-Sucking Service Manager です
使用法は
nssm install <servicename> "C:\Program Files\Java\jre7\Java.exe" "-jar <path-to-jar-file>"
Nssm.exeを使用しますが、AppDirectoryを設定することを忘れないでください。そうしないと、必要なライブラリまたはリソースにアクセスできなくなります。デフォルトでは、nssmは、現在の作業ディレクトリを、jarではなくアプリケーションのJava.exeの作業ディレクトリに設定します。バッチスクリプトを作成するには、次のようにします。
pushd <path-to-jar>
nssm.exe install "<service-name>" "<path-to-Java.exe>" "-jar <name-of-jar>"
nssm.exe set "<service-name>" AppDirectory "<path-to-jar>"
これにより、サービスの一時停止の問題が修正されます。
Tanukiはjswのライセンスを少し前に変更しました。プロジェクトを開始する場合、Yet Another Java Service Wrapper、 http:// yajsw。 sourceforge.net/ これは多かれ少なかれ、JWSを模倣したオープンソース実装であり、JWSに基づいて構築され、さらに改善されます。
編集:私は数年前からYAJSWを複数のプラッター(Windows、複数のLinux ...)で使用してきましたが、素晴らしいことであり、開発が進行中です。
Procrunでは、prunsrvをアプリケーションディレクトリにコピーし( download )、次のようにinstall.batを作成する必要があります。
set PR_PATH=%CD%
SET PR_SERVICE_NAME=MyService
SET PR_JAR=MyService.jar
SET START_CLASS=org.my.Main
SET START_METHOD=main
SET STOP_CLASS=Java.lang.System
SET STOP_METHOD=exit
rem ; separated values
SET STOP_PARAMS=0
rem ; separated values
SET JVM_OPTIONS=-Dapp.home=%PR_PATH%
prunsrv.exe //IS//%PR_SERVICE_NAME% --Install="%PR_PATH%\prunsrv.exe" --Jvm=auto --Startup=auto --StartMode=jvm --StartClass=%START_CLASS% --StartMethod=%START_METHOD% --StopMode=jvm --StopClass=%STOP_CLASS% --StopMethod=%STOP_METHOD% ++StopParams=%STOP_PARAMS% --Classpath="%PR_PATH%\%PR_JAR%" --DisplayName="%PR_SERVICE_NAME%" ++JvmOptions=%JVM_OPTIONS%
私は推測します
そのために Tanuki Service Wrapper を使用します。それは非常に設定可能です。
別のオプションはwinswです: https://github.com/kohsuke/winsw/
Xmlファイルを構成して、サービス名、実行するもの、引数などを指定し、exeを使用してインストールします。 xmlの例: https://github.com/kohsuke/winsw/tree/master/examples
これはnssmよりも好きです。なぜなら、それは1つの軽量のexeであるためです。 config xmlはソースコードへの共有/コミットが簡単です。
PSサービスはyour-service.exe install
を実行してインストールされます