Java - сборка и развертывание Ant в JBoss завершается неудачно из-за UnsupportedClassVersionError - PullRequest
1 голос
/ 20 октября 2011

Я пытаюсь собрать и развернуть проект в папку JBoss для развертывания с помощью встроенного сценария Maven-Ant из Eclipse, но он всегда заканчивается тем, что JBoss регистрирует следующее:

nested throwable: (java.lang.UnsupportedClassVersionError: Bad version number in .class file)

Используемое программное обеспечение для этого проекта следующее:

  • Муравей 1.6.5
  • Плагин Maven-Ant Tasks 2.1.3
  • JBoss 4.0.5 GA
  • JDK 1.4

В Eclipse под Window> Preferences я добавил JDK в список Java>Installed JREs и на всякий случай установил его по умолчанию. В разделе Project>Properties>Java Compiler я установил уровень соответствия 1.4, а также безуспешно поработал с другими параметрами соответствия.

Кроме того, JBoss настроен на использование точно такого же JDK, как 1.4_03 с веб-сайта Oracle. Странно, что Eclipse идентифицирует его как версию 1.5. Например, на странице компилятора Java написано:

При выборе версии 1.4 убедитесь, что установлена ​​и активирована совместимая JRE (в настоящее время - 1.5).

Кто-нибудь может дать какой-нибудь совет, где я мог ошибиться?

Заранее спасибо!

Ответы [ 4 ]

1 голос
/ 20 октября 2011

Я бы начал искать в свойствах вашей среды maven / ant.

Выбор jdk в Eclipse используется только в ide.Java_home и другие параметры, установленные в ваших свойствах maven или ant, будут использоваться для компиляции и сборки.

Я бы также проверил вашу переменную среды JAVA_HOME, как если бы она не была явно задана в файле свойств.быть приобретенным из окружающей среды.

1 голос
/ 20 октября 2011

Вы должны убедиться, что скрипт Ant также использует правильную версию; то, что вы получаете предупреждение 1.5, немного беспокоит - мне трудно поверить, что Eclipse неправильно определит JDK. Кроме того, имейте в виду, что JDK не такой же, как JRE, поэтому дважды проверьте ваши пути / и т.д.

Вам также необходимо убедиться, что все развернутых вами библиотек и библиотек JBoss скомпилированы с 1.4 - если ваш проект имеет зависимости, скорее всего, их библиотеки не скомпилированы на 1.4.

Кроме того, высказывание «J2EE JDK 1.4» немного сбивает с толку, поскольку Java EE и Java SE - это две разные вещи, и вы не сможете запустить J2EE 1.4 под JDK 1.4, AFAIK.

1 голос
/ 20 октября 2011

Это означает, что некоторый класс внутри JBoss был скомпилирован с несовместимой (более поздней) версией Javac (имеет больший мажорный номер) и ваш JRE runung JBoss отказывается загружать это.

(класс-нарушитель находится где-то на трассировке стека)

Единственное решение - использовать более свежий JDK для запуска JBoss и компиляции (1.4 довольно старый и AFAIK больше не поддерживается)

0 голосов
/ 26 октября 2011

JDK, который я использовал, оказался неверной версией. Я связался с одним из предыдущих разработчиков, и он сказал, что он определенно должен работать с JDK 1.5 update 9, и в этом вся разница. Я получил это неоднозначное сообщение об ошибке. Простите за беспорядок, ребята!

...