您现在的位置是:首页 >

退出应用程序的方法 为Java应用程序添加退出事件处理

火烧 2021-08-10 18:30:05 1050
为Java应用程序添加退出事件处理   一个完整的Java应用程序 通常至少要有一个应用程序的结束点 对于一般程序来说 系统开发者根据需要和个人的偏好 会在程序结束位置 通过添加Sy tem exit

为Java应用程序添加退出事件处理  

退出应用程序的方法 为Java应用程序添加退出事件处理
  一个完整的Java应用程序 通常至少要有一个应用程序的结束点 对于一般程序来说 系统开发者根据需要和个人的偏好 会在程序结束位置 通过添加System exit( ) 或System out( ) 来结束程序 或不加这些指令 让程序自然运行到结束     如 下列典型代码    package untitled ;    /**  * This application is to demo how an applcation end  */  public class Test {  public Test() {  }  public static void main(String[] args) {  Test test = new Test();  //   System out println( hello world );  //Do something before system exit  System exit( );//也可以不写这句代码 让程序自然结束     }  }    对于简单的应用系统 我们直接可以在System exit( )代码执行前 添加需要在应用程序退出前需要完成的工作 如 关闭网络连接 关闭数据库连接等     然而 对于比较复杂的多线程应用 线程运行的状态较复杂 我们就很难预料程序何时结束 如何能在应用程序结束事件到来时 处理我们要做的工作呢?这就用到了Java对应用程序的退出的事件出处理机制     对当前应用程序对象的获得 Java通过Runtime静态方法 Runtime getRuntime()通过Runtime的 void addShutdownHook(Thread hook) 法向Java虚拟机注册一个shutdown钩子事件 这样一旦程序结束事件到来时 就运行线程hook 我们在实际应用时候 只要将程序需要完成之前做的一些工作直接通过线程hook来完成 具体演示代码如下     /**********************************************************  本程序仅演示 如何在Java应用程序中添加系统退出事件处理机制  ***********************************************************/  package untitled ;  import java util *;  import java io *;    /**  * This application is used to demo how to hook the event of an application  */  public class Untitled {    public Untitled () {  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) {  Untitled untitled = new Untitled ();  long s = System currentTimeMillis();  for (int i = ; i < 1000000000; i++) {  //在这里增添您需要处理代码    }  long se = System.currentTimeMillis();    System.out.println(se - s);  }  }      在上述程序中,我们可以看到通过在程序中增加Runtime.getRuntime().addShutdownHook(new Thread()) 事件监听,捕获系统退出消息到来,然后,执行我们所需要完成工作,从而使我们的程序更健壮! lishixinzhi/Article/program/Java/JSP/201311/19528  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码