Есть ли способ в Windows проверить, запущена ли программа (в данном случае Java-приложение), и если она не запущена (из-за сбоя), повторно запустить ее?
Используйте PowerShell:
get-process name-pattern
вернет детали для каждого сопоставления процесса name-pattern
. Если совпадений нет, значит, ни один из подходящих процессов не запущен:
if (@(Get-Process MyProcessName).Length -eq 0) {
MyProcessName ...
}
(С помощью @(...)
для обеспечения Get-Process
во всех случаях возвращает массив.)
NB. если вам нужно, чтобы это выполнялось часто, следует также рассмотреть другие варианты (например, предупреждения монитора производительности могут запускать приложение или даже настраиваемую службу).