Java 如何卸载System.load(dll路径)加载的dll

Java 如何卸载System.load(dll路径)加载的dll,java,java-native-interface,Java,Java Native Interface,是否有任何方法可以卸载使用System.load()API调用加载到应用程序中的DLL。您必须使用单独的加载DLL。dll仅绑定到加载它的类加载器。当不再使用类加载器时(意味着不存在对类加载器的引用),垃圾收集器将释放类加载器并卸载dll。这是最简单的方法。我还使用了一个存根库,它可以从JNI代码中加载真实的存根库,这样我就可以控制它显式地加载和卸载。@Petesh,你能再解释一下你的方法吗。您是如何处理卸载部件的?@KamalJoshi您可以在此处看到代码示例:

是否有任何方法可以卸载使用System.load()API调用加载到应用程序中的DLL。

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

这是最简单的方法。我还使用了一个存根库,它可以从JNI代码中加载真实的存根库,这样我就可以控制它显式地加载和卸载。@Petesh,你能再解释一下你的方法吗。您是如何处理卸载部件的?@KamalJoshi您可以在此处看到代码示例: