为Java应用程序添加退出事件响应-Java基础-Java-编程开发
来源:互联网 发布:重庆富士康java 编辑:程序博客网 时间:2024/05/22 06:20
如:下列典型代码
package untitled14;
/**
* This application is to demo how an applcation end
*/
public class Test {
public Test() {}
public static void main(String[] args) {
Test test1 = new Test();
//.................
System.out.println("hello world");
//Do something before system exit
System.exit(0);//也可以不写这句代码,让程序自然结束。
}
}
然而,对于比较复杂的多线程应用,线程运行的状态较复杂,我们就很难预料程序何时结束,如何能在应用程序结束事件到来时,处理我们要做的工作呢?这就用到了Java对应用程序的退出的事件出处理机制。
对当前应用程序对象的获得,Java通过Runtime静态方法:Runtime.getRuntime()通过Runtime的 void addShutdownHook(Thread hook) 法向Java虚拟机注册一个shutdown钩子事件,这样一旦程序结束事件到来时,就运行线程hook,我们在实际应用时候,只要将程序需要完成之前做的一些工作直接通过线程hook来完成。具体演示代码如下:
/*******************************************************
本程序仅演示,如何在Java应用程序中添加系统退出事件处理机制
*******************************************************/
package untitled14;
import java.util.*;
import java.io.*;
/**
* This application is used to demo how to hook the event of an application
*/
public class Untitled1 {
public Untitled1() {
doShutDownWork();
}
/*****************************************************
* This is the right work that will do before the system shutdown
* 这里为了演示,为应用程序的退出增加了一个事件处理,
* 当应用程序退出时候,将程序退出的日期写入 d:/t.log文件
****************************************************/
private void doShutDownWork() {
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
try {
FileWriter fw = new FileWriter("d://t.log");
System.out.println("Im going to end");
fw.write("the application ended! " (new Date()).toString());
fw.close();
}
catch (IOException ex) {
}
}
});
}
/****************************************************
* 这是程序的入口,仅为演示,方法中的代码无关紧要
***************************************************/
public static void main(String[] args) {
Untitled1 untitled11 = new Untitled1();
long s = System.currentTimeMillis();
for (int i = 0; i < 1000000000; i ) {
//在这里增添您需要处理代码
}
long se = System.currentTimeMillis();
System.out.println(se - s);
}
}
- 为Java应用程序添加退出事件响应-Java基础-Java-编程开发
- 为Java应用程序添加退出事件响应
- 为您的Java应用程序添加退出事件处理
- 为您的Java应用程序添加退出事件处理
- 为您的Java应用程序添加退出事件处理
- 为您的Java应用程序添加退出事件处理
- 为您的Java应用程序添加退出事件处理
- 为您的Java应用程序添加退出事件处理
- Java应用程序添加退出事件响应 (关闭虚拟机而不是程序-system.exit)
- Java应用程序本地编译为EXE的几种方法-Java基础-Java-编程开发
- 应用Java技术开发WAP应用程序-Java基础-Java-编程开发
- Java Swing 控件添加事件响应
- JAVA给下拉菜单添加事件响应
- Java Applet编程响应鼠标键盘-Java基础-Java-编程开发
- 可扩展的Java应用程序开发模式-Java基础-Java-编程开发
- 为 Java 桌面应用程序添加 Splash 屏幕
- java中添加按钮并添加响应事件
- java基础 ---Swing事件编程
- 在 Java 应用程序中访问USB设备-Java基础-Java-编程开发
- 打破Java定律:无需创建对象--Ioc容器革命-Java基础-Java-编程开发
- 用Java实现HTTP文件队列下载-Java基础-Java-编程开发
- Java服务器端编程安全必读-Java基础-Java-编程开发
- 论全世界所有程序员都会犯的错误-Java基础-Java-编程开发
- 为Java应用程序添加退出事件响应-Java基础-Java-编程开发
- JS导航条显隐例子
- c#获取不到隐藏控件的值
- Groovy Tip 15 “*”操作符
- 如何在网页中嵌入播放器
- 回发或回调参数无效。在配置中使用或在页面中使用 <%@ Page EnableEventValidation="true" %
- c++学习之 指针和自由存储空间
- 向量、矩阵乘法的几何意义(一) scalar multiplication VS scalar product
- 关于地震预测的一个胡思乱想