1

我正在构建一个系统,其中有一个简单的 GUI,可以触发系统执行。我以一种在引发异常时System.exit(0)调用系统的方式实现了系统,因此应用程序停止。

我希望停止执行,就像现在一样,但是我希望 GUI 也不会关闭。我尝试在单独的线程中实现系统,但是当抛出一些异常时,应用程序仍然关闭。

有没有办法让 UI 保持打开状态,但仍然停止实施?

4

3 回答 3

2

您不能为此目的使用 Java system.exit,因为该函数会终止运行您的代码的 Java 虚拟机实例,从而停止应用程序的所有线程。

为了使 System.exit 现在按您希望的方式工作,您需要有两个不同的进程,以便每个进程都在自己的 Java 虚拟机中运行。但是,这将使将事物联系在一起变得更加困难。

理想情况下,您应该在实现中添加某种控制,以便您的 GUI 线程可以激活或停用一个自然会停止实现逻辑的开关。在我看来,这确实是最好的方法。

于 2012-04-05T21:32:08.530 回答
0

从本质上讲,它们需要是单独的应用程序。也就是说,使它们成为独立的进程,而不是独立的线程。

UI 和后端之间的这种松散耦合将实现您想要的行为,并且还会产生与分离 UI 和后端的关注点相关的许多其他好处。

于 2012-04-05T21:29:50.890 回答
0

不,如果您的程序在同一进程上运行,则无法让您的 UI 保持打开状态。我想您可以将您的 UI 和您的程序作为单独的应用程序运行,但这似乎很乏味且容易出错。如果抛出异常,您应该通知用户,而不仅仅是退出 JVM。

于 2012-04-05T21:31:11.643 回答