Runtime.getRuntime().addShutdownHook怎么没起作用?

dfczj 2006-12-09 01:53:54
public class SingleInstance {

/**
* @param args
*/
public static void main(String[] args) {
try{
java.net.ServerSocket server=new java.net.ServerSocket(12345);
}catch(Exception e){
System.out.println("single");
System.exit(0);
}
try{
Thread.sleep(10000000L);
Runtime.getRuntime().addShutdownHook(new Thread(){
public void run(){
System.out.println("bye!");//手动关闭程序,这个bye!总是打不出来,那里有错?
}
});
}catch(Exception e){}
}
}
...全文
772 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
butnet 2006-12-09
  • 打赏
  • 举报
回复
手机关闭!!出现不了,那是因为你在睡觉,没有执行下面的,就是还没有挂监听处理.
把Thread.sleep(10000000L);改成
new Thread(){public void run(){try{Thread.sleep(100000L);}catch(Exception e){}}}.start();
就可以了!
dfczj 2006-12-09
  • 打赏
  • 举报
回复
public class SingleInstance {

/**
* @param args
*/
public static void main(String[] args) {
try{
java.net.ServerSocket server=new java.net.ServerSocket(12345);
}catch(Exception e){
System.out.println("single");
System.exit(0);
}
try{
//Thread.sleep(10000000L);

Runtime.getRuntime().addShutdownHook(new Thread(){
public void run(){
while(true){
System.out.println("bye!");
}

}
});
}catch(Exception e){
e.printStackTrace();
}
System.exit(0);//手动关不可以,只有这样才有效.
}
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧