it-swarm.com.ru

Почему 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: 

jre8

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

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

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

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

27
itdoesntwork

Две вещи: 

Во-первых, 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 вашей платформы здесь

37
Ryan J

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

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


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

5
teddy

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

  • недавно загруженный JDK 1.8.0

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

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

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

  • скачать Eclipse Mars

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

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

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

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

3
Thomas R

У меня была похожая проблема с Eclipse kepler. Я выполнил эти шаги, чтобы решить ее

  • Перейдите в раздел «Помощь» в опциях «Затмение» и «Оперное затмение».
  • Искать jdk 1.8 для kepler
  • Установите необходимый плагин.
  • Перезапустите Затмение.

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

1
satish

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

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

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

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

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

у меня есть Индиго и Луна. Я могу установить 1,8 в луне, но 1,7 в Индиго . Затмение Луны

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

1
Deepanshu J bedi

Вы должны установить поддержку JDT/Eclipse Java 8 для Kepler . https://wiki.Eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler

1
tranan

Старый вопрос, но публикация ответа в случае, если он кому-то помогает .. Путь сборки уже был настроен для использования 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>
1
Tammy
<build>
        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
0
Rakhee

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

0
Bikash Singh

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

0
HaroldSer

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

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

https://wiki.Eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler Пошаговое обновление среды выполнения.

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

0
PRAVEEN SONI