Сначала проверьте, что задача javac
не использует конкретный компилятор, отличный от стандартного. Это может произойти, если вы устанавливаете атрибут executable
раскошелиться конкретный компилятор (наряду с fork="yes"
), как уже упоминалось в task documentation:
исполняемым
полный путь к исполняемому файлу JAVAC для использования в case fork = "yes". По умолчанию используется компилятор Java-версии, на котором в настоящее время запущен Ant. Игнорируется, если fork = "no". Начиная с Ant 1.6 этот атрибут также может использоваться для указания пути к исполняемому файлу при использовании jikes, jvc, gcj или sj.
Если вы просто звоните javac
без указания внешнего компилятора, то Ant будет использовать компилятор, который поставляется с версией Java, на которой запущен Ant. И из сообщения об ошибке явно используется компилятор Java 1.6 (для которого у classfiles есть версия 50.0). Ant обычно работает с использованием исполняемого файла java
, найденного в переменной среды PATH
. Поэтому убедитесь, что первый каталог Java, указанный в переменной PATH
, - это Java 1.8.
В идеале у вас должно быть JAVA_HOME
, установленного на путь Java 1.8, и у него есть PATH
, как и для JAVA_HOME
, так что обе указывают на ту же установку.
JAVA_HOME -> /path_to_jdk1.8
PATH -> %JAVA_HOME%;...;/path_to_some_other_jdk
Вы смешиваете Java версии, вы используете 'javac' из JDK 6 со стандартной библиотекой из Java 8. Убедитесь, что установка Java правильно (проверьте' 'PATH' и JAVA_HOME'). – Jesper
Мои 'javac' и' java_home' указаны на 'java1.8' – byteBiter
Что показывает' java -version'? – manouti