Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在退出java程序时自动调用函数?_Java - Fatal编程技术网

如何在退出java程序时自动调用函数?

如何在退出java程序时自动调用函数?,java,Java,我有一个静态功能保存高分!我想知道当我们退出一个程序时,有没有一种简单的方法可以自动调用这个函数。 如果在C++中,我可以把这个函数放在析构函数中,它可以工作。 但是在爪哇我不知道怎么做! 有什么办法吗? 谢谢大家! 用于SwingGUI程序 myform.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent

我有一个静态功能保存高分!我想知道当我们退出一个程序时,有没有一种简单的方法可以自动调用这个函数。 如果在C++中,我可以把这个函数放在析构函数中,它可以工作。 但是在爪哇我不知道怎么做! 有什么办法吗?
谢谢大家!

用于SwingGUI程序

myform.addWindowListener(new java.awt.event.WindowAdapter() {

            public void windowClosing(java.awt.event.WindowEvent e) {
                    // your exit codes here
                    System.exit(0);
            }
        });

对于所有类型的java应用程序,您都可以注册一个关闭钩子,如下所示:

   Runtime.getRuntime().addShutdownHook(new Thread() {
   @Override
   public void run() {
    System.out.println("Your job when app shutdown");
   }
  });

下次使用谷歌。你的程序是什么?是命令行吗?它是GUI程序吗?@Kon如果运行GUI,您可能不想使用JVM退出挂钩;相反,您希望插入窗口关闭事件。@fge大多数情况下是的,但如果进程通过kill-9或taskkill终止,则不会触发该事件。@Kon JVM退出挂钩也不会触发:pThat's for swing;对于JavaFX,这将是不同的我是一个摇摆人:),谢谢你的提示,@fgeThanks!我会查出来的谢谢,但是我可以在哪里添加这个函数呢?在你程序的开头。它会注册钩子,到时候会自动运行代码。非常感谢。它起作用了。祝您有个美好的一天!如果它对你有效,那么请投票支持我的帖子,并将其标记为正确答案,这样其他人会发现这个解决方案更容易。