public class Test{
     
    //我想在VM将要结束的时候执行cleanUp
    static void cleanUP(){    }
}如何实现,谢谢

解决方案 »

  1.   

    LZ您这样写就可以了
    public class Test{
         
    try{}catch(Exception e){
    }
    //最后总会执行
    finally{
        //我想在VM将要结束的时候执行cleanUp
        static void cleanUP(){    }
    }}
      

  2.   

    谢谢LS的回复。
    你可以写一个编译通过的例子吗?
    我的想法是当这个类的实例被销毁以后并不会调用clean up操作。只有当VM将要关闭时候调用clean up操作。
      

  3.   

    vm关闭时,会释放所有的资源,手工写clean up 没必要吧!1
      

  4.   

    我这个cleanUp函数名字取的不好
    我改成someWork()
    我需要做某些工作,而不是清理资源。
      

  5.   

    已经解决代码如下
    希望能对别人有所帮助
    package pkg;public class Test {    static int count = 0;    static {
            Runtime.getRuntime().addShutdownHook(new Resources());
        }    static void f() {
            count++;
        }    private static class Resources extends Thread {
            public void run() {
                System.out.println(count);
            }
        }    public static void main(String[] args) {
            for (int i = 0; i != 10; i++) {
                Test.f();
            }
        }
    }
      

  6.   

    应该用:
    Runtime.getRuntime().addShutdownHook(new Thread() { 
          public void run() {
               System.out.println("JVM结束前做些清理工作");
          } 
    }); 
      

  7.   


    可以试试PS:lz是不是刚学了C++的析构函数啊