Ошибка JVM java.lang.UnsupportedClassVersionError: - PullRequest
0 голосов
/ 24 ноября 2011

Я получаю эту ошибку

Exception in thread "main" java.lang.UnsupportedClassVersionError: RunAll : Unsupported major.minor version 51.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
  Could not find the main class: RunAll.  Program will exit.

Я скопировал папку из моего коллеги и установил путь к классу (связанное с необходимым приложением jars). И когда я запускаю его, я получаю вышеупомянутый Erorr.

Не знаю, почему я получаю эту ошибку, потому что у нас одинаковые версии Java.

Java-версия "1.6.0_27" Java (TM) SE Runtime Environment (сборка 1.6.0_27-b07) 64-разрядная серверная виртуальная машина Java HotSpot (TM) (сборка 20.2-b06, смешанный режим)

Ответы [ 5 ]

5 голосов
/ 24 ноября 2011

Я подозреваю, что ваш коллега использует Java 7 - компилятор Java 7 испускает байт-код, используя версию 51.0, если не указано иное.

Либо пересоберите код самостоятельно, либо попросите его перестроить с соответствующей опцией -target.

1 голос
/ 24 ноября 2011

Общий ответ: вы не можете запускать классы, скомпилированные с более высокой версией, на более низкой версии JVM.

В вашем случае классы скомпилированы с Java 7, и вы пытаетесь их запуститьс Java 6.

1 голос
/ 24 ноября 2011

Класс версии 51 создается Java 1.7 , поэтому у вас и вашего коллеги не совпадают версии Java. Тот, кто компилирует код, использует Java 1.7.

Так что ваши варианты:

  • Улучшите вашу среду до 1.7
  • Заставь своего коллегу обновить свою среду
  • Скомпилируйте .java файлы в .class файлы самостоятельно
0 голосов
/ 16 января 2014

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

Благодаря этой теме он дал мне подсказку, что проверить.

Я в основном работал на Apache TomCat на другой виртуальной машине, а затем на той, для которой мой JDK компилировал, после того как я обновил настройки и перезапустил TomCAT с правильными путями Java, моя проблема была решена.

Чтобы ответить на ваш вопрос, убедитесь, что ваш JDK и Java VM совпадают.

0 голосов
/ 24 ноября 2011

класс, который вы пытаетесь запустить, был скомпилирован с использованием J2SE 7 .Ваш коллега явно не компилирует JVM, с которой, по его мнению, он компилирует.

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