プログラムが終了/閉じる/クラッシュした場合に、自動的に再度開くにはどうすればよいですか?

プログラムが終了/閉じる/クラッシュした場合に、自動的に再度開くにはどうすればよいですか?

コンピューターで常時実行する必要がある Java JAR プログラムを作成しました。プログラムが閉じられた場合 (ユーザーが閉じたかクラッシュしたため)、プログラムを再度開く必要があります。

すでにコンピューターにログインするたびに自動起動するように設定していますが、これを維持するにはどうすればよいですか?

これはプログラミングに関する質問であるべきかどうかはわかりません。結局のところ、プログラムの自動起動はプログラミングに関する質問ではないので、プログラムを永続化することも同様のケースになると考えました。

答え1

.batこれを/ファイルに配置します.cmdjava必要に応じて呼び出しを調整します。cmd ファイルを自動起動から起動します。次回起動する前に完了するまで待機する必要があるため、javaではなくを使用してください。javaw

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

答え2

これにはいくつかのプログラムが使用できます。その 1 つは、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://www.nssm.com/ より)。bat ファイルをサービスにすると、閉じるときに自動的に再起動します。

あなたの目的のための使用法は、管理者プロンプト内で次のようになります。

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

関連情報