Что такое java.lang.UnsupportedClassVersionError? - PullRequest
7 голосов
/ 22 декабря 2011

что такое java.lang.UnsupportedClassVersionError?

Я прочитал из doc : Брошенный, когда виртуальная машина Java пытается прочитать файл класса и определяет, что основные и вспомогательные номера версий в файле не поддерживаются , не мог понять, что это значит.

Что такое старшая и младшая версии в файле?

Я запустил приложение на чужой машине, когда возникло следующее исключение:

Exception in thread "main" java.lang.UnsupportedClassVersionError: client (Unsupported major.minor version 51.0)
   at java.lang.ClassLoader.defineClass0(Native Method)
   at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
   at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
   at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
   at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
   at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
   at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

хотя он отлично работал на моей машине.

Ответы [ 2 ]

10 голосов
/ 22 декабря 2011

Разные версии компилятора JDK генерируют разные версии классов.Например, Java 1.4 генерирует 48.0, 1.5 генерирует 49.0 и 1.6 50.0.

. Обычно JVM может загружать классы из JVM "меньше", чем она сама, но никогда не увеличивается.Вероятно, вы пытаетесь использовать класс, скомпилированный для 1.6, на 1.5 JVM и т. П.

Хороший инструмент для поиска версий классов - bcel , если вы заинтересованы.В частности, он имеет хороший набор задач муравья.

3 голосов
/ 22 декабря 2011

Это означает, что ваша версия компилятора более поздняя, ​​чем версия jvm, где вы пытаетесь запустить классы.Либо понизьте Java-компилятор вашей машины, либо обновите jvm среды выполнения другой машины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...