I have a small problem.
My Java application holds some native resources. I want to free those resources just before I exit the application. Therefore I wrote a WindowListener
that frees those resources in windowClosed
event.
The problem is that I am having a JFrame
with EXIT_ON_CLOSE
, so when I close the window, it shuts down the JVM and the event will never reach me.
If I use windowClosing
event, then somebody can actually override the closing event ater I freed the resources. This will then lead to segfaults in native code.
I can just put away the EXIT_ON_CLOSE
and call System.exit(0)
from the listener, but that does not seem clean to me.
You could maybe add a shutdown hook and free the native resources there? Runtime.getRuntime().addShutdownHook(Thread t)
. See more info here.