Java 类sun.security.pkcs11.SunPKCS11上出错

Java 类sun.security.pkcs11.SunPKCS11上出错,java,keystore,Java,Keystore,我使用这段代码在java1.4中创建了密钥库 `public static void main(String[] args ) throws IOException, DocumentException, GeneralSecurityException { String pkcs11Config = "name=eToken\nlibrary=C://WINDOWS//system32//eTPKCS11.dll"; java.io.ByteArrayInputStream pk

我使用这段代码在java1.4中创建了密钥库

 `public static void main(String[] args )
      throws IOException, DocumentException, GeneralSecurityException {
String pkcs11Config = "name=eToken\nlibrary=C://WINDOWS//system32//eTPKCS11.dll";
java.io.ByteArrayInputStream pkcs11ConfigStream = new java.io.ByteArrayInputStream(pkcs11Config.getBytes());
sun.security.pkcs11.SunPKCS11 providerPKCS11 = new   sun.security.pkcs11.SunPKCS11(pkcs11ConfigStream);
java.security.Security.addProvider(providerPKCS11);

// Get provider KeyStore and login with PIN
String pin = "123456";
 java.security.KeyStore keyStore =java.security.KeyStore.getInstance("PKCS11", providerPKCS11);
keyStore.load(null, pin.toCharArray());

// Enumerate items (certificates and private keys) in the KeyStore
java.util.Enumeration<String> aliases = keyStore.aliases();
String alias=null;
while (aliases.hasMoreElements()) {
 alias = aliases.nextElement();
System.out.println(alias);

 }}    

请告诉我解决办法。如何下载49以下版本的类,如48等。

SunPKCS11是在Java 1.5中引入的

您必须升级Java版本,否则将无法使用它


提升一个项目并不罕见。“项目已经在运行”并不是避免这种情况的理由,因为它是持续开发过程的预期部分。

您已经将后来的JDK编译的类与1.4代码混合在一起。升级1.4在很多年前就不支持了。我正在从事java 1.4中的项目,因此我无法升级它,因为该项目已经在运行@EJPSo不会引入由后来的JDK编译的代码。这是您的限制:遵守它。sun.security.pkcs11.SunPKCS11在jdk1.4@EJP中找不到
`Error(2,28): cannot access class sun.security.pkcs11.SunPKCS11; class file has wrong version 49.0, should be 45.3 or 46.0 or 47.0 or 48.0`