• ベストアンサー

シャットダウンフックが呼ばれない

PecoPlusの回答

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんばんは。 >java で起動したときは正しくシャットダウンフック >が呼ばれて、終了時刻が保存されています。 >javawで起動したときだけシャットダウンフックが >無視されます。  試してみたら、確かにjavawではシャットダウンフックが呼ばれませんねぇ。  でも、FrameやJFrameを使ったGUIアプリケーションの場合は呼ばれているみたいです。  あてずっぽうなんですが、javawではイベントディスパッチスレッドの有無が関係してシャットダウンフックが呼ばれたり呼ばれなかったりするんじゃないでしょうか。  こうすると↓javawでもシャットダウンフックが呼ばれるみたいです。  ちなみにJ2SE 1.5.0_02 で試しました。 import java.util.*; import java.io.*; public class ShutdownHookTest {   public static void main(String[] args) {     Runtime.getRuntime().addShutdownHook(new Thread() {       public void run() {         PrintWriter pw = null;         try {           pw = new PrintWriter(new FileWriter("log.txt", true));           pw.println(new Date());         }         catch (IOException ex) {}         finally {           if (pw != null)             pw.close();         }       }     });          java.awt.Frame frame = new java.awt.Frame();     frame.pack();     //↑Frameを表示させずに、イベントディスパッチスレッドを動かすためのpack()     //ここをコメントアウトするとシャットダウンフックがかからない。          try {       while (true) {         Thread.sleep(10000);       }     }     catch (InterruptedException ex) {}   } }  しかし、回避策とは言え、表示させもしないFrameを作るのはなんともかっこ悪いです。  やはり、コマンドプロンプトを表示させずにjava.exeを呼ぶことを考えたほうがいいのかもしれません。  でも、いい方法が思いつきません。  それにしても、この症状はJVMのバグなんでしょうか?  それとも仕様なんでしょうか?  変ですね。

関連するQ&A

  • シャットダウン

    パソコンは良くわからないのですが OSはXPです いろいろいじってたら  立ち上げるたびに シャットダウン データーを保存します ログオフ で 30秒ぐらいで自動的に再起動します 何回やっても シャットダウン 再起動の繰り返しで 何も出来ません シャットダウンの キャンセルか削除みたいなものが あったらおしえてください 宜しくお願いします

  • javaの文字コード変換表はどこに保存されているの?

    javaの文字コード変換表はどこに保存されているの? SunのJavaの文字コード変換表はどこに保存されているのでしょうか?書き換えたいんですが、SunのJVMはオープンソースなので書き換え可能ですよね?

    • ベストアンサー
    • Java
  • システムのシャットダウン

    Internet Explorerを開いて接続(@FREED使用)して1~2分ほど経つとシステムのシャットダウンというダイアログボックスが出てきて強制終了(?)してしまいます。 内容は下の通りです。カウントが0になると再起動してしまいます。 どうしてこうなったのかわかりません(>_<) 昨日は使っていませんが、おとといは普通に使えていました。 今日突然なってしまい、再起動しても同じことの繰り返しです。 誰か助けてください、よろしくお願いします。m(__)m ―――――――――――――――――――――――― システムのシャットダウン × システムはシャットダウンされます。進行中の作業をすべ て保存し、ログオフしてください。保存されていない情報 は失われます。シャットダウンは、NT AUTHORITY\SYSTEMによって開始されました シャットダウンまで:00:00:59 メッセージ Remote Procedure Call(RPC)サービスが異常終 了したためWindowsを再起動する必要があります。 ――――――――――――――――――――――――

  • シャットダウン

    WINDOWS終了時にシャットダウンを選択しても 再起動と同じ状態になってしまいます (ログオフはまともに動く) どうすれば正常に動作するようになりますか? よろしくお願い致します。

  • シャットダウンするときに

    友人のPCについてなんですが、 とても動作が遅いんです。 ネットをするにしてもファイルを開くにしても 起動したり、シャットダウンするときも遅いんです。 色々早くなるようなことを試してみたんですが 思うように早くなりません。 動画などが大量に保存されているとかそういうこともないです。 しかし、今一番気になっていることがあって シャットダウンするときに hkcmd.exe プログラムの終了中です お待ちください。 SMax4PNP プログラムの終了中です お待ちください。 TPSBattMWindow プログラムの終了中です お待ちください。 RAMAsst プログラムの終了中です お待ちください。 conime.exe プログラムの終了中です お待ちください。 ctfmon.exe プログラムの終了中です お待ちください。 とメッセージが続きます。 遅いのはこれらが原因なのかなーと思っていますが 対処法があれば教えてくださると助かります。 これらは一応 http://process.a-windows.com/ で調べてみました。

  • PCを指定した時刻に自動でシャットダウンさせたい

    こんにちは。 PCを指定した時刻に自動でシャットダウンさせたいのですが どのようにすればよいのでしょうか? なおかつ、シャットダウンするときに再起動とかサスペンド を選択させることなく、強制的にシャットダウンさせる 必要があります。 コントロールパネルのタスクでやろうかと思ったのですが、 該当する項目が見当たりませんでした。 よろしくお願いいたします。

  • VBからシャットダウンさせる方法

    VBのプログラムから、強制的にWINDOWSをシャットダウンさせるにはどうすればよいでしょうか。 (長時間の処理が終了した後、又は、指定した時刻を過ぎたら自動的にシャットダウンさせたい) VB6.0、OSはWindowsXPです。

  • 使用中にシャットダウンする

    WindowsXPで使用中(時間はその時により異なる にいきなりシャットダウンします。 ・設定を保存しています ・windowsをシャットダウンします Linuxで起動した場合はログオフ状態になる MS-DOSで起動した場合は電源断となる 恐らくBIOSの問題なのかと思いますが、 原因と回復方法が特定できません。 原因究明のヒントを教えてください。 マザーボード(MSI-845PE Max3)の自作機です

  • 強制シャットダウン無効方法

    普通にインターネットを利用していると下記のメッセージが現れ、パソコンが強制にシャットダウンされました。 「システムはシャットダウンされます。進行中の作業をすべて保存し、ログオフしてください。保存されていない情報は失われます。シャットダウンは NT AUTHORITYSYSTEMによって開始されました シャットダウンまで:****** Remote Procedure Call(RPC)サービスが異常終了したためWindowsを再起動する必要があります。」 強制シャットダウンを無効にする方法は、ありますか?

  • カウントダウンが始まりシャットダウンしてしまいます(@_@;)

    ネットにつないでいると突然、  『システムのシャットダウン  システムはシャットダウンされます。進行中の作業 をすべて保存し、ログオフしてください。保存され ていない情報は失われます。シャットダウンは NT  AUTHORITY\SYSTEM によって開始されました。  シャットダウンまで 00:00:59』 となって勝手に再起動してしまいます。自分なりにいろいろ調べてみて、"ファイル名を指定して実行"のところでshutdown -aとするととりあえずはこの表示が消えるのですが電源を切ってまたつけるとまたシャットダウンしてしまうのです。根本的には何も解決していない状態なのでわかる方教えていただけると大変助かります。