防止在具有Swing组件的Java应用程序中发生X11崩溃

编号X11是窗口管理器以及在该窗口环境中运行的Java Swing应用程序的基础。所以如果X11崩溃,你可以做的事情就不多了。

有了正确的架构,适用于多种应用 - 当然。

只需将GUI和“核心逻辑”拆分为单独的进程,并让GUI在崩溃后运行时能够检测并重新连接到正在运行的后端进程。

为了增强稳健性,考虑到X崩溃通常会导致整个系统崩溃,请迁移到传统的客户端/服务器架构,后端通过网络运行。

除了说什么之外,您的后端系统还可以监视HeadlessExceptions并正确处理它们。

+0

当X连接在打开后死亡时,JRE实际上是否会抛出它们?一个快速的谷歌搜索使我没有注意到。 – wrt 2009-07-23 21:48:12

X11桌面应用程序从崩溃的X11服务中恢复通常是不现实的,无论它是用Java还是其他语言编写的。

但是有可能防止Java应用程序出现问题。我记得很久以前(5年以上)处理这个问题。 Sun有一个解决方法,包括设置一个系统属性来告诉JVM不使用2D图形加速。我无法回想这些细节,但是您可能能够在Sun网站上找到同等的解决方案。