【发布时间】:2011-06-17 04:57:37
【问题描述】:
我有一个可以启动其他应用程序的应用程序,比如扩展坞。问题是,如果我正在启动的应用程序 (JFrame) 具有 EXIT_ON_CLOSE,它也会关闭我的主应用程序。
我无法控制我正在启动的应用程序。也就是说,我不能期望应用程序具有良好的行为并使用DISPOSE_ON_CLOSE。
我可以做些什么来避免这种情况?我已经尝试过使用线程,但没有运气。我也尝试将主应用程序线程放在守护进程中,但也没有运气。
我尝试使用自定义 SecurityManager 覆盖 checkExit 方法。问题是现在即使是主应用程序也无法退出。此外,它不会“工作”,因为使用 EXIT_ON_CLOSE 作为默认关闭操作的应用程序将抛出异常并且不执行(因为 Swing 检查安全管理器的退出 -- System.checkExit()),无法启动:(。
【问题讨论】:
-
您是在启动这个其他应用程序,如 frame.setVisible,还是通过 Runtime 或 Process Builder 创建一个新进程?
-
我在特定的类加载器中通过反射启动。
标签: java multithreading swing jframe