Wednesday 8 July 2009

Writing a JVM shutdown hook

Following is the class which exits on some condition. So before exit, if we need to carry out some task, register a shutdown hook(TestShutdownHook.java) with JVM


public class Test {

public static void main(String args[]){

Test test = new Test();
TestShutdownHook testshutdownHook = new TestShutdownHook(test);
Runtime.getRuntime().addShutdownHook(testshutdownHook);
test.startTest();

}

private void startTest() {

int counter = 0;
while(true){
if(counter == 100){
System.exit(0);
}
System.out.println("Running..");
counter++;
}
}

public void beforeShutdownDothis() {
System.out.println("Doing somethig before shutdown");
}
}

package com.my;

public class TestShutdownHook extends Thread {

private Test test;

public TestShutdownHook(Test test){
this.test = test;
}

public void run(){
test.beforeShutdownDothis();
}
}

No comments: