从JVM崩溃中恢复

时间:2011-10-10 09:19:12

标签: java

我正在开发一个基于swing的java应用程序,它通过加载DLL来使用第三方库函数。

DLL中的一些功能调用exit(1)来关闭整个java应用程序。是否有任何解决方案可以使我的JVM在遇到exit(1)时保持活动状态。我无法访问C源代码。

3 个答案:

答案 0 :(得分:6)

调用System.exit()的第三方库已损坏。调用C exit()库方法的第三方库更加破碎。向供应商提交错误报告并考虑转向更好的替代方案。

您可以使用阻止呼叫的安全管理器阻止System.exit()工作。但我不确定来自DLL的调用是否会被安全管理器控制。

答案 1 :(得分:3)

如果你不能改变DLL的行为方式,并且不能以不会调用exit()的方式使用它,你最好的选择可能是在另一个进程的上下文中调用它的功能。然后,这个其他过程将会停止,并且您的主要过程不会受到影响。

这是否是您案件中的实际解决方法,我不知道。

答案 2 :(得分:0)

exit()是exit(),你无能为力。抱怨DLL的供应商。