3
有沒有什麼辦法卸載一個使用System.load()API調用在應用程序中加載的DLL。如何卸載由System.load(DLL的路徑)加載的dll
有沒有什麼辦法卸載一個使用System.load()API調用在應用程序中加載的DLL。如何卸載由System.load(DLL的路徑)加載的dll
您必須使用單獨的ClassLoader來加載dll。該dll只綁定到它加載的ClassLoader。當ClassLoader不再使用時(意味着不存在對ClassLoader的引用),垃圾收集器將釋放您的ClassLoader並卸載您的dll。
這是最簡單的方法。我還使用了一個存根庫,它可以在JNI代碼中執行真實的加載,這樣我就可以控制它明確加載卸載。 – Petesh 2009-09-29 07:34:08
@Petesh 你能解釋一下你的方法嗎?您如何處理卸載部分? – 2009-09-29 08:31:58
@KamalJoshi你可以在這裏看到代碼示例:https://web.archive.org/web/20140704120535/http://www.codethesis.com/blog/unload-java-jni-dll – digz6666 2016-01-25 01:53:08