ユーザーがWindowsXP(オプション、win7)でJavaを使用してコンピューターをシャットダウンしたときに何かを実行するハンドラーを作成することは可能ですか?どのように?
ありがとう。
O/S シャットダウンを含む何らかの理由( 以外それはあなたが望むものですか?System.exit()
)で JVM がシャットダウンされた場合に呼び出されるシャットダウン フックを Java プログラムに追加することができます。
用途: java.lang.Runtime.addShutdownHook(Thread)
:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
// shutdown code here
}
});
シャットダウンフックが仕事をするはずです。
API Docから:
新しい仮想マシンのシャットダウン フックを登録します。Java 仮想マシンは、次の 2 種類のイベントに応答してシャットダウンします。
- 最後の非デーモン スレッドが終了するか、exit (同等の System.exit) メソッドが呼び出されると、プログラムは正常に終了します。
- 仮想マシンは、^C の入力などのユーザー割り込み、またはユーザー ログオフやシステム シャットダウンなどのシステム全体のイベントに応答して終了します。
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
// do something
}
});