2

Windows の次の使用例について YAJSW を評価しています。

  1. Java アプリケーションをサービスとして実行
  2. JRE_HOMEパス変数(%JRE_HOME%\bin\java.exe)で指定したjavaを利用してサービスを実行します。

2 番目の使用例は非常に重要であり、2 つの柔軟性を可能にします。新しいバージョンの JRE をインストールする (Java サポートが中止された場合/ユーザーが新しい JRE をインストールしたい場合) b)。アプリケーションは、ユーザーがインストールした新しい JRE の影響を受けません

wrapper.conf

wrapper.working.dir = ${wrapper_home}
wrapper.java.command = ${jre_home}/bin/java
wrapper.java.app.mainclass = com.myapp.launcher.Main
wrapper.java.classpath.1  = ${wrapper_home}/jars/simple.jar
wrapper.java.additional.1 = -Xms3m
#wrapper.java.additional.2 = -Xmx512m

wrapper.ntservice.name = YAJSWSimple
wrapper.ntservice.displayname = YAJSWSimple
wrapper.ntservice.description = YAJSW Simple Service
wrapper.ntservice.starttype = AUTO_START
wrapper.ntservice.interactive = false
wrapper.ntservice.java.command = ${jre_home}/bin/java

上記の構成はユース ケース 1 を満たしています。Windows サービスの「YAJSWSimple」サービスと yajsw のコマンド ファイル (bat/startService.bat および bat\startService.bat) の両方から開始/停止できます。

wrapper.java.commandおよびwrapper.ntservice.java.commandconfig プロパティを使用しても、2 番目のユース ケースを実現できません。

Windows サービス一覧で YAJSWSimple サービスの実行可能プロパティへのパスを確認したところ、次のように表示されました。

C:\Program Files (x86)\Java\jre7\bin\java.exe 
-classpath C:\Users\sathish\Softwares\yajsw\yajsw-stable-11.11\wrapper.jar 
-Xrs -Dwrapper.service=true 
-Dwrapper.working.dir=C:\Users\sathish\Softwares\yajsw\yajsw-stable-11.11 
-Djava.net.preferIPv4Stack=true -Djre_home="C:\Program Files (x86)\Java\jre7" 
-Dwrapper_home=C:\Users\sathish\Softwares\yajsw\yajsw-stable-11.11\bat\/.. 
-Dwrapper.java.command="C:\Program Files (x86)\Java\jre7/bin/java" 
-Dwrapper.ntservice.java.command="C:\Program Files (x86)\Java\jre7/bin/java" 
-Dwrapper.config=C:\Users\sathish\Softwares\yajsw\yajsw-stable-11.11\conf\wrapper.conf 
-Dwrapper.additional.1x=-Xrs 
-Djna_tmpdir=C:\Users\sathish\AppData\Local\Temp  
org.rzo.yajsw.boot.WrapperServiceBooter

wrapper.java.commandサービスは、wrapper.ntservice.java.command構成プロパティで指定したパスを展開します。

2 番目のユース ケースを完了するには、YAJSWSimple サービスの実行可能プロパティへのパスを次のようにします。

%JRE_HOME%/bin\java.exe 
-classpath C:\Users\sathish\Softwares\yajsw\yajsw-stable-11.11\wrapper.jar 
-Xrs -Dwrapper.service=true 
-Dwrapper.working.dir=C:\Users\sathish\Softwares\yajsw\yajsw-stable-11.11 -Djava.net.preferIPv4Stack=true 
-Dwrapper_home=C:\Users\sathish\Softwares\yajsw\yajsw-stable-11.11\bat\/.. -Dwrapper.java.command="%JRE_HOME%/bin/java" 
-Dwrapper.ntservice.java.command="%JRE_HOME%/bin/java" 
-Dwrapper.config=C:\Users\sathish\Softwares\yajsw\yajsw-stable-11.11\conf\wrapper.conf 
-Dwrapper.additional.1x=-Xrs 
-Djna_tmpdir=C:\Users\sathish\AppData\Local\Temp 
org.rzo.yajsw.boot.WrapperServiceBooter
  1. インストールされたサービスが JRE アップグレードの影響を受けないように、YAJSW でこれをどのように達成できますか?

  2. Linux/Unix マシンについても同じユース ケースを評価します。同じソリューションが他のプラットフォームでも機能することを願っています。

4

1 に答える 1