退出java程序时如何自动调用函数? [复制]

Posted

技术标签:

【中文标题】退出java程序时如何自动调用函数? [复制]【英文标题】:How to call a function automaticlly when exit a java program? [duplicate] 【发布时间】:2015-05-21 05:11:18 【问题描述】:

我有一个静态函数来保存高分!我想知道当我们退出程序时是否有一种简单的方法可以自动调用这个函数。 如果在 C++ 中,我可以将此函数放入析构函数中并且它可以工作。 但是在java中我不知道怎么做! 有什么想法吗? 谢谢!

【问题讨论】:

下次使用谷歌。 你的程序是什么?是命令行吗?它是一个 GUI 程序吗? @Kon 如果您运行 GUI,您可能不想使用 JVM 退出挂钩;相反,您想插入窗口关闭事件。 @fge 大多数情况下是的,但如果进程通过 kill -9 或 taskkill 终止,则不会触发。 @Kon JVM 也不会退出钩子:p 【参考方案1】:

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

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

【讨论】:

谢谢,但我可以在哪里添加该功能? 在程序的开头。会注册hook,到时候会自动运行代码。 非常感谢。有用。祝你有美好的一天! 如果它对你有用,然后投票给我的帖子,并标记为正确答案,这样其他人会更容易找到这个解决方案。【参考方案2】:

用于 Swing GUI 程序

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

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

【讨论】:

那是秋千;对于 JavaFX 会有所不同 我是个摇摆人 :),谢谢你的提示,@fge 谢谢!我去看看

以上是关于退出java程序时如何自动调用函数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何实现按任意键退出

对象做函数参数和函数返回值时,调用复制构造函数,构造函数,析构函数的情况

静态对象成员会在所属类的析构函数被调用时自动析构吗?

Linux 内核进程管理 ( 进程状态 | 进程创建 | 进程终止 | 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 )

退出和返回有啥区别? [复制]

进入和退出函数时生成自动日志 .net 2.0