执行addShutdownHook

时间:2014-10-09 06:10:06

标签: java

在类中实现addShutdownHook的位置和方式,没有主方法?这可以用来杀死该类初始化的所有活动套接字吗?

3 个答案:

答案 0 :(得分:1)

这可能适合你,

   public class AddShutdownHookSample {
      public void attachShutDownHook(){
           Runtime.getRuntime().addShutdownHook(new Thread() {
                @Override
                public void run() {
                      System.out.println("Inside Add Shutdown Hook");
                }
           });

           System.out.println("Shut Down Hook Attached.");
      }
   }

主要方法:

public static void main(String[] args) {
  AddShutdownHookSample sample = new AddShutdownHookSample();
  sample.attachShutDownHook();
  System.out.println("Last instruction of Program....");
  System.exit(0);
 }
  

描述你想要做的所有事情并展示你遇到麻烦的确切点,这对其他人来说更容易帮助你。

答案 1 :(得分:0)

以下是一个示例,这可能对您有所帮助

public class RuntimeDemo {

   // a class that extends thread that is to be called when program is exiting
 static class Message extends Thread {

  public void run() {
     System.out.println("Bye.");
  }
}

public static void main(String[] args) {
  try {

     // register Message as shutdown hook
     Runtime.getRuntime().addShutdownHook(new Message());

     // print the state of the program
     System.out.println("Program is starting...");

     // cause thread to sleep for 3 seconds
     System.out.println("Waiting for 3 seconds...");
     Thread.sleep(3000);

     // print that the program is closing 
     System.out.println("Program is closing...");


  } catch (Exception e) {
     e.printStackTrace();
  }
 }
}

答案 2 :(得分:0)

完成这样......

 static { 
         Runtime.getRuntime().addShutdownHook ( new Thread() { 
               public void run() { 
                   server.shutdown(); 
               } 
          } ); 
  }