丁寧な設計

人にコーディングしてもらうなら端折ったりせず必須情報を見易く書いてなければダメなのだが。。。

public class TestMain{

   public static void main(String[] args){
      Runtime.getRuntime().addShutdownHook(new Thread(new _Hook()));
      
      // リスナ等の起動
      
      // Lock
      Object lock = new Object();
      synchronized (lock){
         try{
         lock.wait();
         }catch(InterruptedException e){
         }
      }

   }
   static class _Hook implements Runnable{
      _Hook(){
         // 停止前の準備
      }
      /* (非 Javadoc)
       * @see java.lang.Runnable#run()
       */
      @Override
      public void run(){
         // 停止に必要な処理
      }
   }
}