当前位置: 主页 > JAVA语言

java 退出程序-铁路工厂3 模拟火车2012程序出现错误,现在退出

发布时间:2023-03-09 12:20   浏览次数:次   作者:佚名

一个完整的java应用程序通常至少有一个应用程序端点。 对于一般的程序,系统开发者会根据需要和个人喜好在程序末尾添加system.exit(0)或system.out(-1)结束程序,或者不添加这些指令,让程序自然地运行到完成。

如:如下典型代码

包无标题14;

/**

* 此应用程序用于演示应用程序如何结束

*/

公开课测试{

公共测试(){}

public static void main(string[] args) {

测试 test1 = 新测试 ();

//......................

system.out.println("你好世界");

tm2009的程序退出后tmexe进程还在_铁路工厂3 模拟火车2012程序出现错误,现在退出_java 退出程序

//在系统退出之前做一些事情

system.exit(0);//这段代码也可以不写,让程序自然结束。

}

}

对于一个简单的应用系统,我们可以直接在system.exit(0)代码执行之前添加应用退出前需要完成的工作,比如:关闭网络连接,关闭数据库连接等。

但是,对于更复杂的多线程应用,线程运行的状态更加复杂,我们很难预测程序什么时候结束。 当应用程序结束事件到来时,我们如何处理我们要做的工作呢? 这就利用了java的事件处理机制来实现应用程序的退出。

java通过runtime静态方法runtime.getruntime()通过runtime的void addshutdownhook(thread hook)方法向java虚拟机注册一个shutdown hook事件来获取当前应用对象,这样一旦程序结束事件到来,线程会运行Hook,在我们实际应用中,我们只需要在程序需要完成之前做一些工作,直接通过线程hook即可。 具体的demo代码如下:

/**************************************************** *** *****************************

本程序仅演示如何在java应用程序中添加系统退出事件处理机制

****************************************************** *** *****************************/

tm2009的程序退出后tmexe进程还在_java 退出程序_铁路工厂3 模拟火车2012程序出现错误,现在退出

包无标题14;

导入 java.util.*;

导入java.io.*;

/**

* 此应用程序用于演示如何挂接应用程序的事件

*/

公开课无标题1 {

公共无标题1(){

做关机工作();

}

java 退出程序_铁路工厂3 模拟火车2012程序出现错误,现在退出_tm2009的程序退出后tmexe进程还在

/**************************************************** *** ***************************

* 这是系统关闭前要做的正确工作

* 这里为了演示,为应用程序的退出添加了一个事件处理器,

* 应用程序退出时,将程序退出日期写入d:\t.log文件

****************************************************** *** ****************************/

私人无效doshutdownwork(){

runtime.getruntime().addshutdownhook(新线程() {

公共无效运行(){

尝试 {

filewriter fw = new filewriter("d:\\t.log");

tm2009的程序退出后tmexe进程还在_铁路工厂3 模拟火车2012程序出现错误,现在退出_java 退出程序

system.out.println("我要结束了");

fw.write("申请结束!" + (new date()).tostring());

fw。 关闭();

}

赶上(ioexception前){

}

}

});

}

/**************************************************** *** ***

tm2009的程序退出后tmexe进程还在_铁路工厂3 模拟火车2012程序出现错误,现在退出_java 退出程序

* 这里是程序的入口java 退出程序,只是为了演示,方法中的代码无关紧要

****************************************************** *** */

public static void main(string[] args) {

untitled1 untitled11 = new untitled1();

长 s = 系统。 当前时间毫秒();

对于 (int i = 0; i < 1000000000; i++) {

//在这里添加你的处理代码

}

long se = 系统。 当前时间毫秒();

system.out.println(se - s);

}

}

在上面的程序中java 退出程序,我们可以看到通过在程序中添加runtime.getruntime().addshutdownhook(new thread())事件监听器,我们可以捕捉到系统退出消息的到来,然后执行我们需要完成的工作,让我们的程序更加健壮!