2009-09-29 106 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