Creé un programa Java JAR que debe estar ejecutándose todo el tiempo en la computadora. Si el programa está cerrado (ya sea porque el usuario lo cerró o porque falló), necesito volver a abrir el programa.
Ya logré iniciarlo automáticamente cada vez que inicio sesión en la computadora, pero ¿cómo puedo mantenerlo activo?
No estoy seguro de si esto debería ser una cuestión de programación o no. Después de todo, los programas de inicio automático no son una cuestión de programación, así que pensé que hacerlos persistentes podría ser un caso similar.
Respuesta1
Pon esto en un archivo .bat
/ .cmd
. Ajusta la java
invocación a tus necesidades. Inicie el archivo cmd desde el inicio automático. Asegúrate de usar java
, no javaw
, ya que deseas esperar hasta que termine antes de iniciarlo la próxima vez.
:start
"C:\Program Files\java\bin\java" -jar my.jar
goto start
Respuesta2
Hay varios programas que puedes utilizar para esto. Uno se llama Programas de control en ejecución (CRP). Esta es una muy buena herramienta para usar cuando se tiene este problema.
Aquí hay un enlace para eso.............
https://www.raymond.cc/blog/keep-application-running-by-automatically-rerun-when-closed/
Espero que esto responda a tu pregunta, si no, házmelo saber.
Respuesta3
Hay una pregunta en el desbordamiento de pila sobre cómo convertir un archivo .bat en un servicio:
https://stackoverflow.com/a/13294293
La mejor respuesta a esa pregunta es usar nssm (http://nssm.cc/). Cuando su archivo bat se convierte en un servicio, se reiniciará automáticamente cuando se cierre.
El uso para su propósito sería algo como lo siguiente dentro de un mensaje de administrador:
nssm install yourservicename yourbatfile.bat
nssm start servicename
nssm stop servicename