2015-02-10 3 views
2

Я оцениваю YAJSW для следующих вариантов использования для окон.Использование JRE_HOME в службе окон YAJSW

  1. Run Java Application в качестве службы
  2. Запуск службы с использованием Java , указанной в JRE_HOME переменной пути (% JRE_HOME% \ Bin \ java.exe).

Второй вариант использования очень важен и позволяет использовать 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.ntservice.java.command.

Я проверил Путь к исполняемому свойству службы YAJSWSimple в списке сервисов Windows, и он показывает следующее.

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 
  1. Как это может быть достигнуто в YAJSW так, что установленная служба не влияет обновление JRE?.

  2. Я собираюсь оценить одинаковые варианты использования для машин linux/unix. Надеюсь, что одно и то же решение будет работать и на других платформах.

ответ

0

создать окна обслуживания, которое удовлетворяет оба случая следующее в wrapper.conf:

wrapper.java.command = java 

Это эффективно, используя ту же версию Java, который указан при вводе java -version. После каждого обновления JRE java -version показывает, что используется последняя версия, поэтому последняя версия будет использоваться YAJSW.

Я заметил на моей установке (Windows 7 x32, YAJSW 11.11), что после установки/обновления JRE не установлены ни JRE_HOME, ни JAVA_HOME, а echo %PATH% показывает, что java не задан так, как должен быть, пока ввод java -version всегда обновляется после установки/обновления. Затем я обнаружил, что java.exe, javaw.exe и javaws.exe присутствует в C:\Windows\System32\ и обновляется после каждого обновления. Таким образом, просто используя java в wrapper.conf будет указывать на последнюю установленную JRE.