拦截系统关闭信号

在Java窗口程序中按ctrl+c会强行中止Java程序。点击窗口关闭按钮也会强行中止程序。

Runtime.getRuntime().addShutdownHook(hooker)允许注册一个线程,在System.exit()之后、finalize被调用之前执

行它。 根据文档,如果有多个程序注册了hooker, 它们会被同时启用,顺序不被保证。
比如你想在关闭前透过

Jms发送消息,很可能JMS服务已经关闭.
接拦截系统信号。注意,在非Sun的jvm上无效。
网址:http://www.smotricz.com/kabutz/Issue043.html
简单应用如下:
SignalHandler handler = new SignalHandler(){
public void handle(Signal sig) { Server.this.exit(0);
} };
Signal.handle(new Signal("INT"),handler);
//hook ctrl+c
Signal.handle(new Signal("TERM"),handler);
//hook alt+f4
OK, 这下关闭程序可以有限处理了~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值