public class Test{
//我想在VM将要结束的时候执行cleanUp
static void cleanUP(){ }
}如何实现,谢谢
解决方案 »
- java.io.IOException: 由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作。
- 在eclipse中运行,没出现错误,然而在cmd.exe中运行却出现下列错误
- 逻辑问题
- 求J2SDK1.4的HTML文档!
- java
- 在这台机子写的java窗口程序,然后想在另一台没有eclipse运行我的程
- 怪事情,怪事情,真怪..........高手进来看一下
- 请问在LINUX下JAVA的平台是什么?如我在WIN下开发了JAVA程序,如何在LINUX下运行呢?
- iplanet的邮件系统的简单再开发,搞过的高手请帮忙
- 如何取得远程文件
- JAVA中的空指针错误真烦人
- List循环遍历时向列表中add元素如何避免发生异常?
public class Test{
try{}catch(Exception e){
}
//最后总会执行
finally{
//我想在VM将要结束的时候执行cleanUp
static void cleanUP(){ }
}}
你可以写一个编译通过的例子吗?
我的想法是当这个类的实例被销毁以后并不会调用clean up操作。只有当VM将要关闭时候调用clean up操作。
我改成someWork()
我需要做某些工作,而不是清理资源。
希望能对别人有所帮助
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();
}
}
}
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
System.out.println("JVM结束前做些清理工作");
}
});
可以试试PS:lz是不是刚学了C++的析构函数啊