Класс javac1.8 не найден
Я установил два jdks - jdk 1.5 и jdk 1.8.
У меня есть следующий конфигурационный файл Ant build.xml:
<target name="compileCustomSrc">
<javac srcdir="src" destdir="build/classes" source="1.5" target="1.5" >
<classpath>
<fileset dir="C:/lib/">
<include name="*.jar" />
</fileset>
</classpath>
</javac>
</target>
Перед установкой jdk1.8, Ant, вызванный из Eclipse, скомпилировал все источники успешно. Но теперь у меня есть сообщение об ошибке:
Class not found: javac1.8
Мой JAVA_HOME и JRE_HOME:
JAVA_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16
JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16
и установите в Eclipse JRE значение 1.5. Включает ли Java 1.8 некоторые конфигурации во время установки?
Ответы
Ответ 1
Class not found: javac1.8
Эта ошибка, как известно, происходит с версиями Apache Ant, меньшими 1.9.0, которые не совместимы с Java 8. Если вы используете версию Ant < 1.9.0, вы должны обновить до версии 1.9.x.
Вот связанный отчет об ошибке: https://issues.apache.org/bugzilla/show_bug.cgi?id=53347
Btw, если вы просто хотите скомпилировать с Java 8, но не нужно компилировать какой-либо фактический синтаксис Java 8, тогда вы можете передать следующий аргумент javac в качестве обходного пути, который позволяют продолжить использование более старой версии Ant:
-Dbuild.compiler=javac1.7
Ответ 2
Как продолжение ответа Kristian Holdhus (помечено как правильно), вы можете вместо этого использовать атрибут compiler
в Ant javac task. Настройка compiler="modern"
должна быть как обратной (еще в 1.3), так и передовой совместимой.
Это позволяет избежать необходимости устанавливать свойство Java System с именем build.compiler
. Только при отсутствии явной установки атрибута compiler
в задаче javac
будет Ant использовать значение build.compiler
в качестве резервной копии.
Ответ 3
У меня была такая же проблема. Я правильно установил JAVA_HOME и JRE_HOME. У меня также был Ant > 1.9.
Что я сделал, чтобы исправить это, перейдите в Eclipse в Window → Preferences. Разверните Ant и выберите Runtime. По умолчанию следует выбрать вкладку Classpath, а с правой стороны - кнопку Ant Home ". Нажмите эту кнопку и дважды проверьте, указана ли ваша папка Ant.
Ответ 4
JAVA_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16
JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16
Ваши JAVA_HOME и JRE_HOME настроены на установку Java 1.5, поэтому 1.8 двоичные файлы (например, javac
) не найдены.
Установите их на установку Java 1.8, и все будет в порядке.
Ответ 5
Я попробовал это с Eclise и получил ту же ошибку Класс не найден: javac1.8
Я проверил версию ANT в моей системе
ant -версия
Apache Ant (TM) версия 1.9.6, составленная 29 июня 2015 года
Когда я попытался запустить build.xml из командной строки, он сработал.
Затем я проверил, что в Eclipse он ссылался на более раннюю версию ANT.
Я просто редактировал путь ANT HOME в Eclipse, и он тоже работал отсюда.:)
Ниже приведено изображение, где нужно отредактировать путь ANT в Eclipse.
- Щелкните правой кнопкой мыши файл build.xml
- Запуск от
- Внешние конфигурации инструментов
- Выберите вкладку classpath
Теперь измените путь ANT Home здесь.
![введите описание изображения здесь]()
Ответ 6
Обновить Ant до версии 1.9.x как Java 8 в несовместимой с версиями Ant менее 1,9
Ответ 7
Я пробовал все другие решения, но никто не работал. Наконец, я нашел подход, который работал у меня в Eclipse:
- Щелкните правой кнопкой мыши имя задачи ant, например. "compileCustomSrc" в окне
ant
.
- Выберите
Run As | External Tool Configurations
- Затем на вкладке
JRE
выберите Separate JRE: Java SE7
или независимо от имени вашего java 7, затем нажмите Apply
, а затем Run
.
Ваша задача ant будет выполнена и будет построена правильно!
Ответ 8
Обновить Ant до версии 1.9.x как Java 8 в несовместимой с версиями Ant менее 1,9 или после комманда put -Dbuild.compiler = javac1.7, см. ниже:
ant release -Dbuild.compiler = javac1.7
Ответ 9
вы можете загружать и распаковывать ANT 1.10 в вашей системе и пытаться подключить ANT home в eclipse для вашего проекта до 1.10. Он должен работать, прочитайте это для более подробной информации. http://devops-badal.blogspot.com/2017/02/class-not-found-javac18-issue-while.html