Почему Ant дает мне неподдерживаемую ошибку версии major.minor

Я запускаю эту цель в Ant.

<target name="compile" depends="init"
    description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
</target>

Это дает мне эту ошибку.

C:\Users\..\workspace\..\build.xml:21: java.lang.UnsupportedClassVersionError: 
    com/sun/tools/javac/Main : Unsupported major.minor version 51.0

Вот версии:

Apache Ant(TM) version 1.8.2

JDK version is JDK 1.7.0

Здесь мои настройки компилятора в Eclipse.

enter image description here

Пожалуйста, помогите мне решить проблему.

Ответ 1

В окне конфигурации сборки время выполнения jre было настроено на jre 6 вместо jre 7.

Ответ 2

Убедитесь, что tools.jar, используемый во время компиляции, соответствует набору JRE. Если вы находитесь на затмении, проверьте версии как:
Goto Window- > Настройки
 - Проверьте Ant Время выполнения, выбрав Runtime под Ant в левой панели. Проверьте глобальные записи под вкладкой pathpath. Вы можете увидеть версию в пути к папке.
 - На левой панели установите JRE под Java. Проверьте версию.
У меня также была такая же проблема, когда моя выбранная JRE была 1.6.0_24, а tools.jar в Ant время исполнения исходило из jdk 1.7 Если они оба из разных версий - 1.6/1.7, исправьте их, исправив их путь. Как правило, tools.jar можно найти по адресу: C:\Program Files\Java\jdk1.x.x\lib. Аналогично, если необходимо, добавьте JRE, указав его на C:\Program Files\Java\jdk1.x.x\

Ответ 3

  • Проверьте, установлен ли jdk в пути "C:\Program Files\Java" . Если не установить JDK на вашем компьютере.

  • В Eclipse щелкните правой кнопкой мыши на "build.xml", затем выберите Запустить как > Конфигурация внешних инструментов

  • Нажмите " JRE", затем нажмите "Установленные JRE" > "ADD" > "Стандартная виртуальная машина" > Нажмите "Далее

  • Выберите каталог "C:\Program Files\Java\jdk1.7.x_xx" , и каталог будет добавлен в "установленный jres"

  • Выберите новый каталог JDK и нажмите "ОК"

  • Нажмите раскрывающийся список "Отдельный JRE" и выберите версию JDK "jdk1.7.x_xx" и нажмите " Запустить"

Это поможет:)

Ответ 4

Вам нужно будет сказать, какая версия Ant и какая версия JVM.

Вы можете запустить ant -v, чтобы узнать, какие настройки Ant использует в соответствии с документом

Ant 1.8 * требует JDK 1.4 или новее.

"Unsupported major.minor version 51.0" означает, что код был скомпилирован для версии JDK и что вы пытаетесь запустить эти классы в старой версии JDK. (см. здесь)

Ответ 5

Одна из возможных причин этого - неправильная JRE, выбранная в параметрах сборки Ant. Щелкните правой кнопкой мыши файл build.xml и выберите "Запустить как...", а затем "Ant Сборка...", убедитесь, что правильный JRE выбран на вкладке JRE диалогового окна параметров конфигурации. Вы увидите опцию "Отдельный JRE"; убедитесь, что соответствующий jdk выбран из раскрывающегося списка, прежде чем нажать "Выполнить".

Ответ 6

Загрузите JDK-версию JRE на установленную JRE и используйте это вместо этого.
В Eclipse Indigo, если вы проверите вкладку classpath в конфигурации запуска для ant, вы увидите, что по умолчанию она добавляет tools.jar из системы. Поэтому, если вы запустите Eclipse с помощью Java7 и запустите конструкцию ant, используя отдельный JRE6, он генерирует UnsupportedClassVersionError. Когда я добавил JDK-версию, Eclipse выбрал tools.jar из JDK, и моя задача ant выполнена успешно.

Ответ 7

Я сталкиваюсь с той же проблемой. Затем я вошел в Run as → Ant build...- > jre. Я нашел, что jre используется отдельно JRE, который является затмением ERE по умолчанию (1.6). Затем я перешел к разделам → установил JRE. И измените местоположение JPL-затмения по умолчанию на мой jdk (1.7).

Проблема разрешена.

Ответ 8

Я хотел бы добавить свои результаты здесь, чтобы помочь другим, так как, хотя релевантно, ни одна из них не решила мою проблему.
У меня была уникальная ситуация, когда я отправился из мастерской для weblogic 9.2 в Helios с JDK6. Однако наши эксперты по безопасности подтолкнули нас к JDK7, который заставил мою руку пойти в Индиго.

В конце я использовал sysinternals explorer для поиска, если что-то в настоящее время использует папку JDK6, которая все еще существует в моей системе. Конечно же, это был Eclipse. Я открыл eclipse.ini, а вторая строка ссылалась на JDK6, я заменил его на каталог JDK7, запустил Eclipse, и сборка была успешной.

Ответ 9

Если вы получаете эту ошибку, потому что вы целенаправленно пытаетесь создать Java 6, но у вас есть Java 7 в другом месте Eclipse, возможно, это связано с тем, что вы ссылаетесь на Java 7 tools.jar в среде Java 6.

Вам нужно будет установить JDK 6 (не JRE) и добавить JRE 6 tools.jar в качестве пользовательской записи в пути класса конфигурации сборки, указанном выше JRE 7 tools.jar.

Ответ 10

В моем случае проект был Maven, у меня был JDK 1.8.0, Eclipse: Kepler, и я установил плагин M2Eclipse из Eclipse Marketplace.

Изменение уровня компилятора не помогло.

Наконец, я использовал последнюю версию eclipse (Luna), уровень компилятора 1.7, тот же плагин M2Eclipse и проблема была решена.

Ответ 11

перейти к опции запуска --- > выбрать параметр внешнего инструмента ---- > настройка внешнего инструмента --- > выберите ant build ---- > выберите файл build.xml --- > там вы найдете вариант JDK --- > выберите требуемую JRE.