这个比较困难,但是就算能通过变通的办法也很难实现你的保存工作进度啊因为java是使用jvm在操作系统运行的,如果关机了,这个事件发生了,那么jvm这个进程也就被kill了
那么你的程序也就不能运行了
由此推断,你的要求可能无法实现啊!

解决方案 »

  1.   

    难道java程序在系统中运行时,只要没有自己退出或用户关闭遇到关机或者重启事件都是被强制中止线程的?
      

  2.   

    那是当然啊!
    jvm进程kill的时候应该会调用System.exit(x)
    这样就是强制退出了
      

  3.   

    jvm在调用 System.exit 的之前会通知它内部的进程吗?
      

  4.   

    你的意思是内部线程吧?
    应该是没有的。这个具体我也不能乱讲,因为我确实不太清楚。呵呵但是就算有这个消息的话,我们也没有办法捕获到啊
    至少我没有见到什么api可以就算能捕获到,那么消息一到位就exit了
    那么你还能做什么事情呢?时间不够的
      

  5.   

    我看到有System.exit(0)和System.exit(1),他们有什么different?
      

  6.   

    System.exit(0)
    正常退出
    非零参数是非正常退出
      

  7.   

    to jFresH_MaN(TM):jvm只是个虚拟机,我觉得在虚拟机中运行的东西,还是叫做进程比较贴近毕竟虚拟机对于软件开发人员是透明的,不知道这个理解对不...觉得作为虚拟机应该对依赖其的“元素”负责,会在退出前通知那些‘元素’,等待多少毫秒...想想而已,没对java深入了解...