从x-session注销时,Java程序结束

时间:2015-03-31 14:19:27

标签: java swing user-interface

当我使用GUI(例如简单的JFrame)运行Java程序然后结束X会话(注销)时,我的Java程序终止。没有使用GUI的Java程序继续运行。

这没有任何问题,但我想知道 程序是如何终止的。我没有收到有关未捕获的异常或其他问题的消息。退出代码为1.如果prog由信号终止,退出代码将通过128 +信号(afaik)。

有人可以解释这个问题。我可以以某种方式阻止程序终止或控制该案例的退出代码吗?

[编辑]

我知道defaultCloseOperation。我正在使用EXIT_ON_CLOSE。但这会导致调用System.exit(0)。 我还添加了一个WindowListener来监视程序结束时调用哪些函数。当我通过单击窗口X完成程序时,将调用函数windowClosing()。当我注销并完成X-session以便我的程序终止时,不会调用WindowListener函数。我的程序只退出退出代码1。

1 个答案:

答案 0 :(得分:0)

  

当我使用GUI(例如简单的JFrame)运行Java程序时

我不知道X-session的工作原理,但是在使用JFrame时你需要注意框架

setDefaultCloseOperation(...);

方法。使用EXIT_ON_CLOSE时,JVM将立即退出。

DISPOSE_ON_CLOSE时,如果JVM是最后一帧打开并且没有其他线程在运行以阻止JVM关闭,则将退出JVM。