【问题标题】:How to unload a dll which gets loaded by System.load(path to dll)如何卸载由 System.load 加载的 dll(dll 的路径)
【发布时间】:2009-09-29 07:18:12
【问题描述】:

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

【问题讨论】:

    标签: java java-native-interface


    【解决方案1】:

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

    【讨论】:

    • 这是最简单的方法。我还使用了一个存根库,它从 JNI 代码中执行真实的加载,这样我控制它显式加载卸载。
    • @Petesh 您能否再解释一下您的方法。您具体是如何处理卸货部分的?
    • @KamalJoshi 您可以在此处查看代码示例:web.archive.org/web/20140704120535/http://www.codethesis.com/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多