
Я создал программу Java JAR, которая должна работать на компьютере все время. Если программа закрыта (либо пользователь ее закрыл, либо она зависла), мне нужно открыть ее заново.
Мне уже удалось настроить его автозапуск при каждом входе в систему, но как мне его поддерживать?
Я не уверен, должен ли это быть вопросом программирования или нет. В конце концов, автозапуск программ — это не вопрос программирования, поэтому я подумал, что сделать их постоянными может быть похожим случаем.
решение1
Поместите это в файл .bat
/ .cmd
. Измените java
вызов в соответствии с вашими потребностями. Запустите файл cmd из автозапуска. Обязательно используйте java
, а не javaw
, так как вы хотите дождаться его завершения перед следующим запуском.
:start
"C:\Program Files\java\bin\java" -jar my.jar
goto start
решение2
Есть несколько программ, которые вы можете использовать для этого. Одна из них называется Control Running Programs (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