2014-10-23 2 views
1

Учитывая такое исключение:Неподдерживаемое MAJOR.MINOR 52,0 исключение в Java

java.lang.UnsupportedClassVersionError: com/sun/tools/javac/Main : Unsupported major.minor version 52.0 

И я знаю, что это происходит потому, что JDK и JRE не совместимы. Однако, когда я печатаю:

which java 

Выход:

/usr/java/jdk1.6.0_24/bin/java 

И при вводе:

which javac 

Выход:

/usr/java/jdk1.6.0_24/bin/javac 

Это совместимый в версии. Так в чем проблема?

+0

А как вы начинаете программа, которая генерирует исключение? – PeterMmm

+0

При запуске скрипта 'ant' он содержит некоторые задачи о java. Я думаю, что путь Джавака неверен. Вы знаете, как настроить путь javac? – byteBiter

+0

Ant использует среду 'JAVA_HOME' var. – PeterMmm

ответ

3

Проблема, как правило, вызван этой последовательностью:

  • код скомпилирован с новой JDK, и «цель» установлен в текущую версию Java.

  • Попытка запускать код со старым JDK или JRE.

В этом случае промежуточная версия 52 означает, что что-то было составлено с Java 8 JDK, и с Java 8 в качестве целевой платформы, и что вы пытаетесь запустить его на старой JRE/JDK.

Вы также получили файл JAR где-то еще, что был скомпилирован для Java 8.

Чтобы решить проблему, необходимо выяснить:

  • , которые имеют класс файл или файлы проблема номер версии (сообщение исключения должно сказать вам первый ...),

  • где файл класс пришел из (из файла JAR? из файловой системы?), а затем

  • как получилось скомпилировано с Java 8, хотя вы подумали, которую вы компилировали с Java 6.

Это неоспоримый факт, что класс, который не будет загружать был скомпилированы с использованием Java 8 (или более поздней версии) компилятор. Вы должны выяснить, почему, а затем либо пересобрать его с более старой версии JDK, или запустить его с Java 8.

0

Убедитесь, что tools.jar, используемый во время компиляции, соответствует набору JRE. Если вы на затмении, проверить версии, как:

Goto window-> Preferences

  • Проверка Ant выполнения, выбрав Время воспроизведения при Ant в левой панели. Проверьте глобальные записи под вкладкой pathpath. Вы можете увидеть версию в пути к папке.

  • На левой панели установлены установленные JRE под Java. Проверьте версию.

+0

спасибо, что решил мою проблему – Bravo

1

это говорит версии 52.0, так что вы должны установить Java 8.

Смежные вопросы