Java.lang.Runtime.removeShutdownHook() Method
Description
The java.lang.Runtime.removeShutdownHook(Thread hook) method de-registers a previously-registered virtual-machine shutdown hook.
Declaration
Following is the declaration for java.lang.Runtime.removeShutdownHook() method
public boolean removeShutdownHook(Thread hook)
Parameters
hook -- the hook to remove
Return Value
This method returns true if the specified hook had previously been registered and was successfully de-registered, false otherwise.
Exception
IllegalStateException -- If the virtual machine is already in the process of shutting down
SecurityException -- If a security manager is present and it denies RuntimePermission("shutdownHooks")
Example
The following example shows the usage of lang.Runtime.removeShutdownHook() method.
package com.tutorialspoint;
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 {
Message p = new Message();
// register Message as shutdown hook
Runtime.getRuntime().addShutdownHook(p);
// 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);
// remove the hook
Runtime.getRuntime().removeShutdownHook(p);
// print that the program is closing
System.out.println("Program is closing...");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Let us compile and run the above program, this will produce the following result:
Program is starting... Waiting for 3 seconds... Program is closing...