跪问怎样实现Java程序的“最终任务”?这里的“最终任务”指的是:当操作系统要关闭时(例如用户选择了“开始”菜单中的“关机”),操作系统通知该应用程序“最后的机会”保存重要数据(比如将内存中的数据保存到文件)。我试了一下:
对于JavaSwing程序,在它的JFrame.WindowClosing()事件中添加保存文件的代码,
结果是:只有当用户通过JFrame上的“关闭”按钮退出这个应用程序时,才执行WindowClosing中保存文件的代码,而选择“开始”菜单中的“关机”退出全部应用程序时,WindowClosing()中的保存文件的代码不被执行。对于JSP程序,在它的destroy()方法中添加保存文件的代码,
在JBuilder中直接用Tomcat5调试,结果是,通过JBuilder关闭JSP时,destroy()中保存文件的代码执行了,而选择“开始”菜单中的“关机”退出全部应用程序时,destroy()中的保存文件的代码不被执行。以上两个方法都不能满足我的要求,我的要求是:只要用户正常退出操作系统(而不是突然断电之类的),我的Java程序中的数据总有“最后的机会”得到保存。请问怎么实现 谢谢!

解决方案 »

  1.   

    JFrame上的“关闭”按钮退出这个应用程序时?在这个退出事件里添加不就可以了。现在的人怎么都变笨了
      

  2.   

    这个退出事件只在正常退出时才触发
    我的要求是:用户选择了“开始”菜单中的“关机”直接退出操作系统,他压根就不去点击JFrame上的“关闭”按钮
      

  3.   

    java.lang.Runtime.addShutdownHook(Thread hook)