Java 如何编写';s在相应的jar卸载时调用
我正在构建一个jar,它可以打开一些进程外资源。(顺便说一句,我必须采用这种方法) 但我想做的是在虚拟机即将关闭jar时关闭这些资源——理想情况下使用我编写的jar中的函数 我该怎么做?我宁愿避免使用JNI,尽管资源的性质是这样的,我已经将这个jar限制在windows上了。我知道Java 如何编写';s在相应的jar卸载时调用,java,Java,我正在构建一个jar,它可以打开一些进程外资源。(顺便说一句,我必须采用这种方法) 但我想做的是在虚拟机即将关闭jar时关闭这些资源——理想情况下使用我编写的jar中的函数 我该怎么做?我宁愿避免使用JNI,尽管资源的性质是这样的,我已经将这个jar限制在windows上了。我知道 我能可靠地依赖具有终结器的单例吗?您不能依赖终结器,我将使用关闭挂钩: 一个非常简单的例子: Runtime.getRuntime().addShutdownHook( new Thread() {
我能可靠地依赖具有终结器的单例吗?您不能依赖终结器,我将使用关闭挂钩: 一个非常简单的例子:
Runtime.getRuntime().addShutdownHook(
new Thread() {
public void run() {
//Your shutdown logic here
}
}
);
如果线程中的代码增长,您可能不应该使用匿名类。
您可以将所有资源传递给线程并在线程内关闭它们
更多信息可在此处找到:您不能依赖终结器,我将使用关机挂钩: 一个非常简单的例子:
Runtime.getRuntime().addShutdownHook(
new Thread() {
public void run() {
//Your shutdown logic here
}
}
);
如果线程中的代码增长,您可能不应该使用匿名类。
您可以将所有资源传递给线程并在线程内关闭它们
更多信息可以在这里找到:+1这就可以了(我需要从头到尾阅读一本java书籍)。谢谢。+1就可以了(我需要从头到尾读一本java书)。谢谢