#java #jakarta-ee #ant #maven-ant-tasks #jboss-4.0.x
#java #jakarta-ee #ant #maven-ant-задачи #jboss-4.0.x
Вопрос:
Я пытаюсь создать и развернуть проект в папке развертывания JBoss с помощью встроенного скрипта Maven-Ant из Eclipse, но в итоге JBoss всегда регистрирует следующее:
nested throwable: (java.lang.UnsupportedClassVersionError: Bad version number in .class file)
Используемое программное обеспечение для этого проекта следующее:
- Ant 1.6.5
- Плагин задач Maven-Ant 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).
Кто-нибудь может дать несколько советов, где я мог ошибиться?
Заранее спасибо!
Комментарии:
1. Вы должны управлять платформой и убедиться, что в ваших параметрах сборки указана Java 4. Я бы взглянул на сценарий Ant и посмотрел, есть ли в нем исходный уровень, который переопределял бы любые настройки в Eclipse. Найдите записи target =»1.5″ в тегах javac.
2. Я проверил файлы сборки Ant, и ни у одного из них нет атрибута target или source в задаче javac.
Ответ №1:
Это означает, что какой-то класс внутри JBoss был скомпилирован с несовместимой (более поздней) версией Javac (имеет большее основное число), и ваш JRE runung JBoss отказывается загружать это.
(класс-нарушитель находится где-то в stacktrace)
Единственное решение — использовать более свежий JDK для запуска JBoss и компиляции (1.4 довольно старый, и AFAIK больше не поддерживается)
Ответ №2:
Я бы начал искать в ваших свойствах среды maven / ant.
Выбор jdk в Eclipse используется только в ide. java_home и другие параметры, заданные в ваших свойствах maven или свойствах ant, будут использоваться для компиляции и сборки.
Я бы также проверил вашу переменную среды JAVA_HOME, как если бы она явно не была установлена в файле свойств, она будет получена из среды.
Ответ №3:
Вам нужно убедиться, что сценарий Ant также использует правильную версию; то, что вы получаете предупреждение 1.5, немного беспокоит — мне трудно поверить, что Eclipse неправильно идентифицирует JDK. Кроме того, имейте в виду, что JDK — это не то же самое, что JRE, поэтому дважды проверьте свои пути / etc .
Вам также необходимо убедиться, что все ваши развернутые библиотеки и библиотеки JBoss скомпилированы с 1.4 — если в вашем проекте есть зависимости, скорее всего, их библиотеки не скомпилированы с 1.4.
Кроме того, выражение «J2EE JDK 1.4» немного сбивает с толку, потому что Java EE и Java SE — это две разные вещи, и вы не сможете запустить J2EE 1.4 под JDK 1.4, AFAIK.
Комментарии:
1. Этот материал по управлению версиями Java все еще сбивает меня с толку. Мне нужна была версия JDK 1.4, и я загрузил J2EE 1.4_03 с веб-сайта Oracle, чтобы убедиться, что он также включает в себя инфраструктуру JAAS. Я предполагал, что он включает в себя 1.4 JDK и, следовательно, соответствующий JRE. Я ошибаюсь?
2. @Raidok Зависит от того, что вы на самом деле загрузили — похоже, что есть загрузка, которая включает JDK, но она включает JDK 1.5, согласно этой странице загрузки .
3. О, это облом. Это тот, который я получил. Что ж, Eclipse был прав.
Ответ №4:
JDK, который я использовал, оказался неправильной версией. Я связался с одним из предыдущих разработчиков, и он сказал, что это определенно должно работать с обновлением JDK 1.5 9, и это все изменило. Я пропустил это неоднозначное сообщение об ошибке. Извините за беспорядок, ребята!