Подтвердить что ты не робот

Исключение при компиляции: неправильная версия 50.0, должна быть 49.0

Я работаю над приложением с JXL API, и когда я пытался скомпилировать с использованием eclipse IDE, он работает нормально, и то же самое не компилируется, когда я пытаюсь скомпилировать в командной строке и отображаю приведенное ниже исключение.

Extract.java:6: cannot access jxl.read.biff.BiffException bad class file: C:\Program Files\Java\jdk1.5.0_01\jre\lib\ext\jxl.jar(jxl/read/biff/BiffException.class)
class file has wrong version 50.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
import jxl.read.biff.BiffException;
                     ^
1 error

EDIT:

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

4b9b3361

Ответ 1

Библиотека, которую вы используете, была скомпилирована с помощью Java 6

Ваш компилятор - это Java 5, поэтому он не понимает этот формат.

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

Ответ 2

Per http://www.jnode.org/node/2140...

Представлено Стивеном Кроули в пятницу, 30.11.2007 - 07:15.

Я подозреваю, что вы смешиваете код, скомпилированный с разными версиями Java. Class file version 50.0 используется Java 6.0, а 49.0 используется Java 5.0.

Попробуйте сделать "build clean", чтобы избавиться от всех существующих файлов классов, за которым следует регулярная сборка.

JNode разрабатывается только с использованием Java 6.0. В прошлый раз, когда я пытался, он не строился с использованием Java 5.0 (aka 1.5). (Это проблема с программой, которая создает загрузочный образ JNode.)

Попробуйте изменить конструктор в Eclipse. Если вы используете 3.4, это Project - Properties - Java Compiler - Включить специальные настройки проекта - Уровень соответствия компилятора = 1.6. Вам также потребуется установить JRE 1.6.

Ответ 3

Проверьте путь к классу в eclipse и убедитесь, что его один и тот же путь к классу, который вы компилируете в командной строке, также проверьте импорт вашей библиотеки

Ответ 4

Это означает, что вы скомпилировали этот класс с Java 6 и попытались выполнить с Java 5.

Решение:

Если вы используете ant, выполните нижеуказанные действия в корневом каталоге проекта

  • ant clean
  • ant deploy

Если вы используете eclipse, просто очистить рабочее пространство (удалить файлы классов, которые были скомпилированы с помощью Java6) и снова построить

Ответ 5

это может быть то, что в IDE вы указываете на последнюю версию JDK, но когда вы создаете свою программу за пределами IDE (возможно, с maven), ваша java_home является более старой версией, чем в вашей IDE.