我正在評估以下Windows用例的YAJSW。在YAJSW窗口服務中使用JRE_HOME
- 運行的Java應用程序作爲服務
- 運行使用JRE_HOME路徑變量(%JRE_HOME%\ bin中\ java.exe的)指定的Java 該服務。
第二個用例非常重要,它允許2個靈活性 a)。安裝任何更新版本的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.我能夠啓動/從窗口服務既「YAJSWSimple」的服務,並停止命令文件(bat/startService.bat和bat \ startService.bat)
我無法通過wrapper.java.command
和wrapper.ntservice.java.command
配置屬性實現第二個用例。
我在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
配置屬性指定的路徑。
要完成我想要的路徑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
這可怎麼在YAJSW實現,所以安裝服務不會受JRE升級?
我打算評估linux/unix機器的相同用例。我希望同樣的解決方案也適用於其他平臺。