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 java
invocaçã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