知识大全 为Java应用程序添加退出事件处理

Posted 事件

篇首语:遇到一些人,知道一些事,才能懂的理解与珍惜,才能看清自己的方向。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 为Java应用程序添加退出事件处理相关的知识,希望对你有一定的参考价值。

为Java应用程序添加退出事件处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一个完整的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()) 事件监听,捕获系统退出消息到来,然后,执行我们所需要完成工作,从而使我们的程序更健壮! cha138/Article/program/Java/JSP/201311/19528

相关参考