知识大全 为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

相关参考

知识大全 浅析Java语言的事件处理快捷回复

浅析Java语言的事件处理快捷回复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在JAVA程序

知识大全 浅析Java与C#的事件处理机制(二)

浅析Java与C#的事件处理机制(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  \\在程序

知识大全 java的事件处理

  在JAVA程序设计中事件的处理是非常重要的尤其是在需要自定义事件和设计JavaBean时对事件的处理过程有一个完整的认识对于编程是很有帮助的    下面用一个演示性的例子来说明事件及其处理过程  

知识大全 js为鼠标添加右击事件防止默认的菜单弹出

  本文为大家介绍下如何为使用js为鼠标添加右击事件防止默认的右击菜单弹出感兴趣的朋友可以参考下希望对大家有所帮助【责编:at】cha138/Article/program/Java/JSP

知识大全 新Eclipse插件—为Java 、PHP和Rails的应用添加云托管功能

新Eclipse插件—为Java、PHP和Rails的应用添加云托管功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们

知识大全 如何为Java程序中添加播放MIDI音乐功能

如何为Java程序中添加播放MIDI音乐功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Ja

知识大全 浅析Java与C#的事件处理机制(一)

浅析Java与C#的事件处理机制(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java与

知识大全 探讨与比较Java和.NET的事件处理框架

探讨与比较Java和.NET的事件处理框架  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!事件驱动模

知识大全 Java Swing中的键盘事件处理

JavaSwing中的键盘事件处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在javaSw

知识大全 Java中可复用事件处理的设计与实现代码

Java中可复用事件处理的设计与实现代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  目前面向