Это мой основной метод, и он содержит shutdownhook:Почему этот shutdownhook не работает?
public static void main(String args[]) {
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
JOptionPane.showMessageDialog(null, "Shutdown hook");
}
});
/* Create and display the form */
java.awt.EventQueue.invokeLater(
new Runnable() {
@Override
public void run() {
Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
MyFrame frame = new MyFrame();
frame.setVisible(true);
}
});
}
Проблема является JOptionPane
не появляется вообще. Вместо этого кадр закрывается, но само приложение все еще работает. PS. Я не могу использовать событие WindowClosing
, потому что он не срабатывает на Cmd + Q команда на Mac OS X.
Возможно, это связано с тем, что диспетчер событий awt уже был выключен, когда выполняются крючки остановки? – SpaceTrucker
@SpaceTrucker любые предложения? – Igor
Определенно не используйте выключение крюка. Найдите другой механизм. –