java.lang.UnsatisfiedLinkError:java6中的java.library.path中没有j2pkcs11

Aru*_*hny 1 java keystore e-token

我正在尝试使用eToken使用我编写的java应用程序来签署pdf文件.我正在使用带有java 6.0.30的Windows 7 64位版本.

当我运行应用程序时,我得到一个异常说法

Exception in thread "signer" java.lang.UnsatisfiedLinkError: no j2pkcs11 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1028)
    at sun.security.pkcs11.wrapper.PKCS11$1.run(PKCS11.java:88)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.security.pkcs11.wrapper.PKCS11.<clinit>(PKCS11.java:86)
    at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:281)
    at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:90)
    at com.greytip.cougar.pdfsigner.PdfSigner.getProvider(PdfSigner.java:364)
Run Code Online (Sandbox Code Playgroud)

但是当我查找j2pkcs11.dll文件时,jdk 1.5可用,但我的jdk 1.6 64位不可用.

是否与java安全策略有关,因为异常进入内部AccessController,即dll是在Windows 7内的受保护目录中?

提前致谢.

Aru*_*hny 5

看起来pkcs11没有在任何64位版本的java中实现.它仅适用于32位版本.

所以我打算安装一个32位版本的java并使用它.