![如果程序终止/关闭/崩溃,我该如何自动重新打开它?](https://linux22.com/image/1457955/%E5%A6%82%E6%9E%9C%E7%A8%8B%E5%BA%8F%E7%BB%88%E6%AD%A2%2F%E5%85%B3%E9%97%AD%2F%E5%B4%A9%E6%BA%83%EF%BC%8C%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E8%87%AA%E5%8A%A8%E9%87%8D%E6%96%B0%E6%89%93%E5%BC%80%E5%AE%83%EF%BC%9F.png)
我创建了一个 Java JAR 程序,需要在计算机上一直运行。如果该程序关闭(无论是因为用户关闭还是因为它崩溃),我需要重新打开该程序。
我已经设法让它在我登录计算机时自动启动,但我怎样才能让它保持运行呢?
我不确定这是否应该是一个编程问题。毕竟,自动启动程序不是一个编程问题,所以我认为让它们持久化可能是一个类似的情况。
答案1
将其放入.bat
/.cmd
文件中。java
根据需要调整调用。从自动启动中启动 cmd 文件。确保使用java
,而不是javaw
,因为您希望等到它完成后再下次启动它。
:start
"C:\Program Files\java\bin\java" -jar my.jar
goto start
答案2
有几种程序可以解决此问题。其中一种叫做控制运行程序 (CRP)。遇到此问题时,这是一个非常好用的工具。
这是该链接............
https://www.raymond.cc/blog/keep-application-running-by-automatically-rerun-when-closed/
希望这能回答您的问题,如果没有,请告诉我。
答案3
在 stack overflow 上有一个关于如何将 .bat 文件转换为服务的问题:
https://stackoverflow.com/a/13294293
这个问题的最佳答案是使用 nssm (http://nssm.cc/)。当你的bat文件做成服务后它关闭的时候会自动重启。
在管理员提示符下,您的使用方式如下:
nssm install yourservicename yourbatfile.bat
nssm start servicename
nssm stop servicename