Rogach
Rogach

Reputation: 27270

Intercepting java machine shutdown call?

Is there any way to get notified of JVM shutting down or System.exit call before the actual shutdown? I want this, so my application will be able to make a clean exit. I realize that such thing is unlikely to exist, but still, maybe there is something like this?

Upvotes: 8

Views: 2437

Answers (2)

adarshr
adarshr

Reputation: 62623

There's Runtime.getRuntime().addShutdownHook() method that you might want to explore.

Upvotes: 3

Dr G
Dr G

Reputation: 4017

Have a look at Runtime.addShutdownHook

From the API docs:

The Java virtual machine shuts down in response to two kinds of events:

  • The program exits normally, when the last non-daemon thread exits or when the exit (equivalently, System.exit) method is invoked, or
  • The virtual machine is terminated in response to a user interrupt, such as typing ^C, or a system-wide event, such as user logoff or system shutdown.

Using Runtime.addShutdownHook you can run code in those cases.

Upvotes: 14

Related Questions