У меня странная ситуация: я хочу переключить один класс в библиотеке, поэтому я создал jar с этим классом, и я загрузил это в Oracle - и это заставило ошибку о слишком новой версии класса (и это было правдой, я не заметил, что Я скомпилировал его с помощью JDK8).
Поэтому я перекомпилировал его с помощью JDK5 и снова загрузил, но... он снова повторяет ту же ошибку, UnsupportedClassVersionError
.
Я проверил в SYS.ALL_JAVA_CLASSES
и этот класс имеет большое число SYS.ALL_JAVA_CLASSES
.
Я попытался загрузить всю библиотеку, и это не помогло. Я попытался сбросить эти классы и снова загрузить, отбросить всю библиотеку и загрузить снова - ничего не изменилось.
По-моему, эта ошибка больше не бывает, но DB все еще ее бросает.
Любые идеи, почему это происходит? А что мне делать?
PS Извините за ужасный английский...
Задача решена. Один класс из другой библиотеки, которая использовала мой класс, помнила, что это была слишком высокая версия класса. Загрузка и устранение этой другой библиотеки помогли.
Нумерация версий классов отличается от внешней версии Java.
major version number of the class file format being used.
J2SE 8 = 52 (0x34 hex),
J2SE 7 = 51 (0x33 hex),
J2SE 6.0 = 50 (0x32 hex),
J2SE 5.0 = 49 (0x31 hex),
JDK 1.4 = 48 (0x30 hex),
JDK 1.3 = 47 (0x2F hex),
JDK 1.2 = 46 (0x2E hex),
JDK 1.1 = 45 (0x2D hex).
Итак, 52 происходит от java 8. Поздравляю.