event java listener

event - on click java



¿Cómo capturar el evento System.exit? (2)

Tengo una aplicación en java, en la que trato de asegurarme de que si alguien sale de los códigos System.exit () en el código, se debe llamar a un oyente para hacer algunas cosas, como registrar el mensaje y liberar los recursos ...

¿Cómo puedo implementarlo, cualquier sugerencia / enfoque es bienvenido.


La función Runtime.addShutdownHook(Thread thehook) permite registrar un Runtime.addShutdownHook(Thread thehook) en la máquina virtual de Java.
El gancho funciona como un hilo inicializado pero no iniciado, que la JVM invocará al salir. En caso de que registre más de un enlace, tenga en cuenta que el orden en que se llaman los enlaces no está definido.


El método Runtime.addShutdownHook se puede usar para agregar un gancho de apagado, que básicamente es un Thread no Thread , que se ejecuta al apagar la Máquina Virtual de Java.

Sin embargo, este es un territorio que debe recorrerse con cuidado, ya que se realiza en un momento muy sensible del ciclo de vida de la JVM. De las especificaciones de la API para el método Runtime.addShutdownHook :

Los ganchos de apagado se ejecutan en un momento delicado en el ciclo de vida de una máquina virtual y, por lo tanto, deben codificarse a la defensiva. Deben, en particular, escribirse para ser seguro para subprocesos y para evitar puntos muertos en la medida de lo posible.

En cualquier caso, asegúrese de leer un poco sobre cómo funcionan los ganchos de apagado, ya que probablemente no deberían abordarse sin una buena preparación. Asegúrese de leer cuidadosamente la especificación de la API para el método Runtime.addShutdownHook .

Aquí hay un par de artículos que encontré en la búsqueda de información para esta respuesta: