如何在Java中卸载Dll?

4
我用Lotus Notes 8.5编写了一个Java代理来使用IAIKPKCS11wrapper重置令牌的PIN码。当第一次加载代理时,它可以正常工作。但在关闭并重新启动代理后,它就失败了。通过检查控制台输出,我发现以下错误信息:
"AgentThread: JavaAgent"线程中的异常 java.lang.UnsatisfiedLinkError: pkcs11wrapper(库已在另一个ClassLoader中加载)
我已经搜索了相关群组,但最接近的答案是无法卸载DLL库,但我仍然不知道如何解决问题。
有没有人能指点一下解决方法?

可能是 https://dev59.com/UHM_5IYBdhLWcg3w-4nw 的重复问题。 - Raghuram
1
卸载 DLL,需要卸载加载它的 ClassLoader。OSGI 可以为您处理这个丑陋的过程,但您也可以创建一个 ClassLoader 来完成此操作。 - Peter Lawrey
2个回答

1

-1
尝试在 notes.ini 中将 jar 添加到你的 Lotus Notes classpath:
JavaUserClasses=...;yourAgent.jar

或者将您的jar文件复制到默认的Notes lib目录中,该目录应该类似于:C:\lotus\notes\jvm\lib\ext

另一个尝试的方法是将您的dll文件放在C:\lotus\notes中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接