2011-02-10 47 views
4

我已经使用 IAIKPKCS11wrapper在Lotus Notes 8.5中编写了一个Java代理来重置令牌的PIN。当代理首次加载时,它的工作原理是 。但是在我关闭并重新启动代理后,它失败了。检查 控制台输出,我发现了以下错误:如何卸载在Java中的DLL?

异常在线程“AgentThread:JavaAgent” java.lang.UnsatisfiedLinkError中:pkcs11wrapper(库已加载在 另一个类加载器)

我已搜查组但最接近我能找到的是,它不是 可能卸载DLL库,但我仍然不知道如何处理它 它。

任何人都可以指出我的解决方案吗?

+0

可能的重复http://stackoverflow.com/questions/1139386/check-if-a-dll-library-is-already-loaded-java – Raghuram 2011-02-10 10:59:27

+1

要卸载一个DLL,你需要卸加载它的ClassLoader。 OSGI可以为你处理这个丑陋,但你可以创建一个ClassLoader来为你做这件事。 – 2011-02-10 11:46:55

回答

-1

尝试添加的jar到您的Lotus Notes的classpath中notes.ini

JavaUserClasses=...;yourAgent.jar 

或您的罐子复制到默认Notes lib目录下,它应该是这样的:C:\lotus\notes\jvm\lib\ext

另一件事是尝试把你的dll在C:\lotus\notes.