Общие демоны Apache: параметр PrunServ --StartPath переопределяет PATH в Windows

Я запускаю java-программу на рабочей станции Windows 10.

Я хотел запустить свою Java-программу как службу, поэтому я использовал инструмент Apache Commons prunserv http://commons.apache.org/proper/commons-daemon/procrun.html

Проблема в том, что моя java-программа запускает внутри себя некоторые команды оболочки Windows, такие как cmd \c netstat -rn, но когда я запускаю свою java-программу как службу и указываю StartPath как некоторый каталог. команды внутри моих java-программ терпят неудачу с ошибкой, как показано ниже

Error executing command : [cmd, /c, netstat, -rn], Output is : 'netstat' is not recognized as an 
internal or external command,
operable program or batch file.

Я чувствую, что аргумент StartPath procrun переопределяет переменные PATH, такие как C:\Windows\System32, что приводит к сбою команды внутри java-программы

--StartPath Рабочий путь для исполняемого файла начального образа.

Как мне поступить в этой ситуации?

Дайте мне знать, если вам нужна дополнительная информация.

Заранее спасибо за помощь.


person ShubhWIP    schedule 25.06.2020    source источник


Ответы (1)


Procrun (Prunserv) предоставляет возможность настройки среды.

http://commons.apache.org/proper/commons-daemon/procrun.html

++Environment="PATH='C:\Users\Public\agent\jre\bin';'C:\Windows\system32'"

Я добавил C:\Windows\system32 в Environment и все заработало.

Примечание. Параметр среды в prunserv — это список переменных среды, которые будут предоставлены службе в форме ключ = значение. Они разделяются с помощью # или ; персонажи. Если вам нужно вставить # или ; символ внутри значения заключает их в одинарные кавычки.

person ShubhWIP    schedule 26.06.2020