У меня несколько странная проблема.У меня есть Java-приложение, которое устанавливает несколько служб, которые работают как Jars.Ранее я использовал установленную Java для запуска этих JAR-файлов.Существует четыре службы, и все они будут созданы из одного пакетного файла с последовательным вызовом друг друга.Примерно так:
start %JAVA_HOME% commandtoruntjarfile
будет работать, и все четыре службы будут работать в фоновом режиме, и только один java.exe будет виден в проводнике процессов.Таким образом, у меня была установлена другая служба в качестве службы Windows, которая могла бы остановить эти службы, вызвав команду bat или shutdown shutdown.
Теперь требование клиента изменилось на использование внутренней версии Java.Я извлекаю java в местоположение, создаю собственное имя переменной окружения "ABC_HOME", и требуемый синтаксис в пакете изменяется на
%ABC_HOME%\javaw commandtorunjarfile
. При запуске он работает.но это не остановить.Когда я захожу в Process Explorer, я вижу 4 java.exe, которые запускаются каждая для четырех команд run в командном файле.Если я остановлю службу Windows, все четыре продолжают работать.Если я перезапускаю службу Windows, число java.exe в проводнике процессов увеличивается до восьми и продолжает расти до тех пор, пока Windows не будет достаточно.
Как мне обойти это?Я думаю, что решение должно состоять в том, чтобы иметь один Java-процесс в Process Explorer, но я не могу найти какое-либо решение для этого.
[РЕДАКТИРОВАТЬ] Четыре подуслуги на самом деле являются процессами XYNT.В обычном сценарии это будет что-то вроде этого [Process1] CommandLine = java -Xrs -DasService = yes -cp jarfiles WorkingDir = c: bin scache PauseStart = 1000 PauseEnd = 1000 UserInterface = Нет перезагрузки = Да
Дляпри использовании java из определенного местоположения потребовалось следующее изменение
CommandLine = %JAVA_PATH%\bin\java.exe -Xrs -DasService=yes -cp jarfiles
, но это не сработало бы, так как не приняло бы переменную пути в файле XYNT.ini.поэтому я вызвал командный файл здесь, и в этом командном файле я использовал приведенный выше код.Вот как выглядит это изменение:
CommandLine = batchfile.bat
и в batchfile.bat
%JAVA_PATH%\bin\java.exe -Xrs -DasService=yes -cp jarfiles