Подтвердить что ты не робот

Почему eclipse не переключит компилятор на Java 8?

Я проверил проект Java из SVN в eclipse и понял, что для него требуется Java 8, потому что он использует lambdas и т.д. Я установил eclipse-аддон для Java 8 и перезапустил eclipse и создал проект так:

New Java Project

Я заметил, что рядом с ним говорится, что соответствие компилятора по умолчанию - 1.7, поэтому я пошел в org.eclipse.jdt.core.prefs и установил переменную соответствия компилятора 1.8, согласно этот ответ. Однако в Project → Preferences → Java Compiler он все еще отображается как:

eclipse please

Я установил JRE в Project → Java Build Path:

jre8

Однако компилятор отказывается компилировать лямбда-выражения - я получаю сообщение об ошибке, похожее на то, что я получу, если бы я пошел вперед и набрал его в Java 7.

Это версия eclipse, которую я использую

Version: Kepler Service Release 1
Build id: 20130919-0819

Это единственный способ решить эту проблему, чтобы установить новую версию Eclipse или мне что-то не хватает в конфигурации?

4b9b3361

Ответ 1

Две вещи:

Во-первых, JRE не совпадает с JDK. Если у вас есть JDK, вам нужно настроить eclipse, чтобы указать на это в ваших настройках.

Во-вторых, на вашем скриншоте выше уровень соответствия вашего компилятора равен 1,7. Это будет обрабатывать весь ваш код, как если бы он использовал Java 1.7. Измените это на 1.8, чтобы исправить вашу ошибку.

Вам нужно будет иметь Eclipse Luna, чтобы получить поддержку Java 8, но вы можете добавить его в Kepler SR2, если хотите. Я бы попытался с Луной и вышеупомянутыми предложениями, прежде чем идти дальше. См. эту ссылку.

Как только вы получите Luna, ваша переменная JAVA_HOME должна быть достаточной, чтобы Eclipse распознал JDK 8. Если вы хотите указать дополнительный JDK, вы можете добавить новую Системную библиотеку Java, перейдя по ссылке:

Project -> Properties -> Java Build Path -> Libraries -> Add Library -> Java System Library

и перейти к допустимому местоположению для JDK 8.

Вы можете скачать свою платформу JDK 8 здесь

Ответ 2

Это приводит к тому, что eclipse kepler SR1 не поддерживает новые улучшения языка Java ™ 8, такие как lambda expression.

Из информации здесь: http://www.eclipse.org/downloads/java8/
Я думаю, вы должны использовать кеплер SR2 с плагином поддержки или изменить на Eclipse Luna.


Обновлена ​​ссылка 16/09/2016: https://wiki.eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler

Ответ 3

У меня была такая же проблема, хотя у меня было:

  • только что загруженный JDK 1.8.0

  • JAVA_HOME установлен

  • java -version в отчетах командной строки 1.8

  • Java в панели управления установлена ​​на 1.8

  • загружен Eclipse Mars

Eclipse разрешает мне выбирать уровень соответствия компилятора op 1.7 в настройках компилятора, хотя мой установленный JRE равен 1.8.0. Я также не мог видеть 1.8 в средах выполнения под установленными JRE, только JavaSE-1.7 (которых я даже не установил!). Когда я нажал на это, он показывает "jdk1.8.0" как совместимую JRE, поэтому я выбрал это, но все равно никаких изменений.

Затем я распаковал Eclipse Mars в совершенно новый каталог, создал новый проект, и теперь я могу выбрать 1.8, hurray!. Это значительно уменьшило ошибки "Дублировать методы с именами spliterator..." я получалось при компиляции моего кода под Java 1.8, однако остается еще один:

Дублирующие методы по умолчанию с именем spliterator с параметрами() и() наследуются от типов List и Set.

Однако, вероятно, из-за того, что я расширяю AbstractList и реализую Set, поэтому я исправил это, удалив набор инструментов, потому что он действительно ничего не добавляет в моем случае (кроме того, что означает, что моя коллекция имеет только уникальные элементы)

Ответ 4

Прежде всего, вы должны получить JdK 8.

, если у вас установлен Jdk.

вы должны установить свой путь с помощью командной строки cmd или системных переменных.

иногда бывает так, что путь не задан, из-за чего eclipse не может получить свойства для jdk.

Установка последней версии ecipse luna может решить вашу проблему.

У меня есть индиго и луна. я могу установить 1,8 в луне, но 1.7 в индиго. Eclipse luna

Вы можете проверить сайт eclipse. он говорит, что затмение луны, безусловно, должно связывать свойства для jdk 8.

Ответ 6

У меня была аналогичная проблема с eclipse kepler. Я выполнил следующие шаги, чтобы решить эту проблему.

  • Перейдите в раздел Справка в Eclipse и Oper Eclipse Market Place.
  • Поиск jdk 1.8 для kepler
  • Установите необходимый плагин.
  • Перезапустите затмение.

для справки, ссылайтесь на эту ссылку http://techno-terminal.blogspot.in/2016/05/jdk-18-compiler-compliance-is-not.html

Ответ 7

Старый вопрос, но сообщение ответа может помочь кому-то. Уже построенный путь был настроен на использование JDK 1.2.81. Однако сборка завершилась с ошибкой ниже:

 lambda expressions are not supported in -source 1.5
[ERROR]   (use -source 8 or higher to enable lambda expressions)

В последнем Eclipse (Photon) добавлена запись ниже в pom.xml.

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
  </properties>

Ответ 8

Это старая тема, но я просто хотел указать, что я искал достаточно, чтобы найти, что версия Indigo не может быть обновлена ​​до SE 1.8 здесь, которая указана на веб-сайте eclipse для обновления среды выполнения, но если вы попробуйте, это вызовет ошибку для индиго.

Изображение//wiki.eclipse.org/File:ExecutionEnvironmentDescriptionInstallation.png это ссылка, в которой содержится информация об окружающей среде выполнения.

https://wiki.eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler Это показывает шаг за шагом, чтобы обновить среду Execution.

Я попытался обновить среду Execution и получил ту же ошибку.

Ответ 9

Предположим, что вы уже загрузили Jdk 1.8. Вы должны убедиться, что ваша версия eclipse поддерживает Jdk 1.8. Перейдите на вкладку "Справка" и выберите "Проверить наличие обновлений". Повторите попытку.

Ответ 10

Сначала установите JDK1.8 для параметра "Открыть Open Eclipse" и "Oper Eclipse Market Place". Поиск jdk 1.8 для kepler Установите необходимый плагин. Перезапустите затмение. Измените уровень компилятора на 1.8 из настроек. Если все еще есть ошибка, нажмите на файл и явным образом измените параметр компилятора на Jdk 1.8