сборка Ant версии 1.6.0 на Unix-сервере, в данном случае Solaris - целевой выпуск BUILD FAILED 1.1 конфликтует с исходным выпуском 1.5 по умолчанию - PullRequest
1 голос
/ 10 октября 2011

После выхода из проблемной команды: /usr/jdk/jdk1.5.0_07/bin/java -Dant.home =. -cp $ CLASSPATH: ./ build / classes org.apache.tools.ant.Main -emacs bootstrapЯ получил ошибку СТРОИТЬ НЕУДАЧИ Не удалось загрузить информацию о версии

Перед тем, как вырвать запятую, я выполнил полную команду установки ./build.sh и ./build и получил: Файл сборки: build.xml

самозагрузка:

Приготовление:

check_for_optional_packages:

сборка: Создан каталог: /export/home/rs841k/tmp/apache-ant-1.6.0/build/lib Компиляция 233 исходных файлов в /export/home/rs841k/tmp/apache-ant-1.6.0/build/cla ГСЭС Javac: Кто-нибудь знает, что здесь происходит и как это решить?

1 Ответ

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

Это происходит: вы передаете source и target параметры javac.Источник, кажется, 1.5, а цель 1.1.Это комбинация, которая не допускается.Компилятор не знает, как создать JVM-1.1-совместимый байт-код из ваших источников, который может использовать специфические для 1.5 функции.

В этой статье Oracle поясняются подробности:

javac не принимает цель (или стратегию компиляции) ниже, чем исходный язык, на который он настроен.Каждая новая версия исходного языка обычно сопровождается новой версией ClassFile, которая позволяет ClassFile придавать значение новым инструкциям, флагам и атрибутам байт-кода.Кодирование новых конструкций исходного языка в более старых версиях ClassFile, вероятно, будет трудным.Как бы javac кодировал аннотации из исходного языка Java 1.5 без атрибутов аннотаций Runtime [In] Visible [Parameter], которые появились в 49.0 ClassFile?

...