有没有办法在Windows中检查程序是否正在运行(在这种情况下是一个Java应用程序),如果它没有运行(因为崩溃)重新运行它?
使用PowerShell:
get-process name-pattern
将返回匹配name-pattern每个进程的详细信息。 如果没有匹配,则没有适用的进程正在运行:
if (@(Get-Process MyProcessName).Length -eq 0) { MyProcessName ... }
(使用@(...)确保Get-Process在所有情况下都返回一个数组。
NB。 如果您需要频繁运行,则还应该考虑其他选项(例如,性能监视器警报可以启动应用程序,甚至可以自定义服务)。