我正在尝试使用我编写的 java 应用程序使用 eToken 对 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)
但是当我查找该j2pkcs11.dll
文件时,该文件对 jdk 1.5 可用,但在我的 jdk 1.6 64 位中不可用。
是否与 java 安全策略有关,因为异常正在进入AccessController
,即 dll 在 Windows 7 内的受保护目录中?
提前致谢。