Java / Scala关闭钩子-noclassdeffounderror

时间:2012-07-05 19:56:01

标签: scala shutdown-hook

我有一个多线程Scala应用程序,我有一个关闭钩子,它调用对象的shutdown()方法。不幸的是,这似乎并不可靠。很多时候它无法处理SIGINT并在匿名函数上抛出NoClassDefFoundError。

如何使此关闭处理程序更健壮?

2 个答案:

答案 0 :(得分:1)

一个建议:不是直接注册shutdown()挂钩,而是创建一个ShutdownManager对象并让它注册一个shutdown()挂钩。您的应用程序对象将自己添加到ShutdownManager,然后可以使用特征或通过函数对象调用某些应用程序对象关闭方法。

答案 1 :(得分:0)

使用以下任一方法预加载钩子所需的所有类:

Class.forName(" YourObject")或Class clasz = YourObject.class