草庐IT

EmbeddedEngineHandler

全部标签

java - 在 'normal' Java 应用程序和 Web 应用程序中运行良好的库关闭例程

我维护一个JDBC驱动程序,该驱动程序还具有通过native库(通过JNA访问)提供的嵌入式数据库服务器模式。由于其依赖项的卸载顺序,作为native库本身卸载的一部分完成的关闭在Windows上会遇到问题。为避免访问冲突或其他问题,我需要在卸载此库之前明确关闭嵌入式引擎。鉴于其使用的性质,很难确定调用关闭的合适时机,我现在看到的普通Java应用程序的唯一正确方法是使用Runtime.getRuntime().addShutdownHook与实现关闭逻辑的Thread的子类。这对于普通的Java应用程序来说工作正常,但对于将我的库作为应用程序的一部分(在WAR的WEB-INF/lib中