我试图用我写的一个java应用程序来使用eToken来签署PDF文件。我正在使用Java 6.0.30的Windows 7 64位版本。java.lang.UnsatisfiedLinkError:java6中的java.library.path中没有j2pkcs11
当我跑我得到一个异常说
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位。
由于异常进入AccessController
,即dll是否在Windows 7内的受保护目录内,是否与java安全策略有关?
在此先感谢。
在Java8中对pkcs11的支持是固定的 – marioosh