【发布时间】:2015-04-16 03:47:51
【问题描述】:
好的,所以最近我使用swing在java中制作了一个类似截图工具的程序,它允许您选择屏幕的一个区域并将其作为图像保存到您的计算机。
现在,我想做的是使用我制作的其他程序制作一个全新的项目。
但是,当我的新应用程序中启动 3rd 方 jar 时,它可以正常工作,但是当我关闭 3rd 方应用程序时,它也会关闭我的新应用程序。我确实在第 3 部分应用程序中使用了系统退出,我知道这是它关闭所有内容的原因。
现在我的问题是:出于这个原因使用系统退出是错误的吗?我可以做些什么来防止在不修改旧应用的情况下关闭我的新应用?
或者,您能否在将来提供建议而不是使用 system.exit,因为我仍然希望原来的能够正确关闭,我只是不希望使用旧 jar 的新 jar 也关闭.
我尝试在我的新应用中禁用系统退出,这只会产生更多问题。
【问题讨论】:
-
我想你可能想稍微探索一下 ServiceLoader 类。这样你就可以创建一个“SnippingProvider”......
-
出于这个原因以及其他原因使用系统退出是错误的。它不应该用在任何可以用作库的代码中。不,你不能真正阻止它——你必须删除系统退出调用。
标签: java swing system.exit