1. 程式人生 > >Java應用程式新增退出事件響應 (關閉虛擬機器而不是程式-system.exit)

Java應用程式新增退出事件響應 (關閉虛擬機器而不是程式-system.exit)

/*****************************************************************************
本程式僅演示,如何在Java應用程式中新增系統退出事件處理機制
*****************************************************************************/
package untitled14;
import java.util.*;
import java.io.*;

/**
* This application is used to demo how to hook the event of an application
*/
public class Untitled1 {

 public Untitled1() {
  doShutDownWork();
 }

 /***************************************************************************
 * This is the right work that will do before the system shutdown
 * 這裡為了演示,為應用程式的退出增加了一個事件處理,
 * 當應用程式退出時候,將程式退出的日期寫入 d:/t.log檔案
 **************************************************************************/
 private void doShutDownWork() {
  Runtime.getRuntime().addShutdownHook(new Thread() {

   public void run() {
    try {
     FileWriter fw = new FileWriter("d://t.log");
     System.out.println("Im going to end");
     fw.write("the application ended! " + (new Date()).toString());
     fw.close();
    }
    catch (IOException ex) {
    }

   }
  });
 }

 /****************************************************
 * 這是程式的入口,僅為演示,方法中的程式碼無關緊要
 ***************************************************/

 public static void main(String[] args) {
  Untitled1 untitled11 = new Untitled1();
  long s = System.currentTimeMillis();
  for (int i = 0; i < 1000000000; i++) {
   //在這裡增添您需要處理程式碼
  }
  long se = System.currentTimeMillis();
  System.out.println(se - s);
 }
}