When do I need to call this method Runtime.getRuntime().addShutdownHook()

As far as I know, I will explain this below. You can google it and find lot of information too.

addShutdownHook() will register some actions which is to be performed on a Program’s termination. The program that you start ends in two ways:

  1. the main thread (Root) ends its running context;
  2. the program meets some unexpected situation, so it cannot proceed further.

If you add a ShutdownHook, the hook will start a thread that will start running at time of termination only. For example:

 Runtime.getRuntime().addShutdownHook(new Thread() {
      public void run() {
        System.out.println("Running Shutdown Hook");
      }
    });

will print a Running Shutdown Hook at the time of program termination at any point. You might even call a System.exit(0).

For examples, you can google, there are enough of them. And the question ‘When should you use this’ is like asking ‘What does catch do in a try-catch statement’.

You might have many situations like:

  • your program had created many temporary files in filesystem you want to delete it;
  • you need to send a distress signal to another process/machine before terminating;
  • execute any clean-up actions, logging or after-error actions on unexpected behaviours.

All this will be needed for some point of time.

For examples you can go in here Example 1 or Example 2

Leave a Comment