Como posso reabrir automaticamente um programa se ele terminar/fechar/travar?

Como posso reabrir automaticamente um programa se ele terminar/fechar/travar?

Eu criei um programa Java JAR que precisa estar rodando o tempo todo no computador. Se o programa for fechado (porque o usuário o fechou ou porque travou), preciso reabri-lo.

Já consegui iniciá-lo automaticamente sempre que faço login no computador, mas como posso mantê-lo ativo?

Não tenho certeza se isso deveria ser uma questão de programação ou não. Afinal, a inicialização automática de programas não é uma questão de programação, então imaginei que torná-los persistentes poderia ser um caso semelhante.

Responder1

Coloque isso em um arquivo .bat/ .cmd. Ajuste a javainvocação às suas necessidades. Inicie o arquivo cmd na inicialização automática. Certifique-se de usar java, não javaw, pois você deseja esperar até que termine antes de iniciá-lo na próxima vez.

:start
"C:\Program Files\java\bin\java" -jar my.jar
goto start

Responder2

Existem vários programas que você pode usar para isso. Um deles é chamado de Programas de Execução de Controle (CRP). Esta é uma ferramenta muito boa para usar quando tiver esse problema.

Aqui está um link para isso............

https://www.raymond.cc/blog/keep-application-running-by-automatically-rerun-when-closed/

Espero que isso responda à sua pergunta, se não, me avise.

Responder3

Há uma dúvida no stack overflow sobre como transformar um arquivo .bat em um serviço:

https://stackoverflow.com/a/13294293

A principal resposta para essa pergunta é usar nssm (http://nssm.cc/). Quando seu arquivo bat é transformado em um serviço, ele será reiniciado automaticamente quando for fechado.

O uso para sua finalidade seria algo como o seguinte em um prompt do administrador:

nssm install yourservicename yourbatfile.bat
nssm start servicename
nssm stop servicename

informação relacionada