Я создал keyStore в java1.4, используя этот код.Ошибка в классе sun.security.pkcs11.SunPKCS11
`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);
}}
Но я получаю сообщение об ошибке
`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`
Пожалуйста, скажите мне решение. Как я могу загрузить класс версии ниже 49, как 48 и т.д.
У вас смешанные классы, скомпилированные более поздним JDK с вашим кодом 1.4. Обновить. 1.4 вышел из поддержки много лет назад. – EJP
Я работаю над проектом, который находится в java 1.4, поэтому я не могу его обновить, потому что проект уже запущен. @EJP –
Так что не вводите код, скомпилированный более поздним JDK. Это ваше ограничение: наблюдайте это. – EJP