在码头停止前调用一个函数

时间:2014-01-17 10:17:50

标签: java windows-services jetty

在我正在进行的项目中,我们需要在jetty停止之前“保存”工作,在linux上这很简单,因为我们可以调用另一个进程,在Windows上,这并不容易,因为我们正在注册进入Windows服务,这意味着我们可以修改start.jar文件,在调用“stop”函数之前做一些事情,或者,在这里我需要帮助:

我想,jetty在触发stop()函数之前执行某个进程,甚至在调用start.Main类之前,这可能吗?

谢谢

1 个答案:

答案 0 :(得分:1)

使用shutdown hooks

  

当虚拟机开始其关闭序列时,它将以某种未指定的顺序启动所有已注册的关闭挂钩,并让它们同时运行。 当所有挂钩都完成后,如果启用了finalization-on-exit,它将运行所有未读取的终结器。最后,虚拟机将停止。

也就是说,一个关闭钩子使JVM保持运行,直到钩子终止(从 run() -method返回。

您必须使用此功能扩展Jetty代码。