public class TestShutDownHook {
2.
public TestShutDownHook() {
3.
doShutDownWork()
4.
}
5.
private void doShutDownWork() {
6.
Runtime run=Runtime.getRuntime()//当前 Java 应用程序相关的运行时对象。
7.
run.addShutdownHook(new Thread(){ //注册新的虚拟机来关闭钩子
8.
@Override
9.
public void run() {
10.
//程序结束时进行的 *** 作
11.
System.out.println("程序结束调用")
12.
}
13.
})
14.
}
15.
public static void main(String[] args) {
16.
new TestShutDownHook()
17.
for (int i = 0i <1000i++) { // 在这里增添您需要处理代码 }
18.
System.out.println(i)
19.
}
20.
}
21.
}
方案 *** 作如下:
(1)让程序在一个单独的线程中运行,然后在终止时,可以用线程的终止方法来结束它。
(2)退出Java程序时尽量不要使用java.lang.System的exit方法。Exit 方法可以终止JVM,从而终止程序,但如果同时运行了另一个Java程序,使用exit方法就会让该程序也关闭,这显然不是希望看到的情况!!!!
要退出Java程序,可以使用destory()退出一个独立运行的过程。对于多线程程序,必须要关闭各个非守护线程。
只有在程序非正常退出时,才使用exit方法退出程序
http://www.baidu.com/s?wd=52095384130
可以用这个语句,他是用来强制让程序退出的。System.exit(1)
例子:
public class Test {
public void doSomething(){
System.out.println("do something...")
System.exit(1)
System.out.println("Cannot be done...")
}
}
因为有System.exit(1)语句,"Cannot be done"永远都没有办法打出来。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)