2009-09-29 78 views

回答

4

您必须使用单独的ClassLoader来加载dll。该dll只绑定到它加载的ClassLoader。当ClassLoader不再使用时(意味着不存在对ClassLoader的引用),垃圾收集器将释放您的ClassLoader并卸载您的dll。

+1

这是最简单的方法。我还使用了一个存根库,它可以在JNI代码中执行真实的加载,这样我就可以控制它明确加载卸载。 – Petesh 2009-09-29 07:34:08

+0

@Petesh 你能解释一下你的方法吗?您如何处理卸载部分? – 2009-09-29 08:31:58

+0

@KamalJoshi你可以在这里看到代码示例:https://web.archive.org/web/20140704120535/http://www.codethesis.com/blog/unload-java-jni-dll – digz6666 2016-01-25 01:53:08