Несмотря на указание JDK 1.7 во всех настройках проекта (в том числе в File -> Project Structure -> Project :: Project SDK
), при попытке скомпилировать простой код Java 7, который использует оператор бриллианта, создается :
IntelliJ 13
java: diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)
Есть ли другое место в конфигурации, где должна быть включена ожидаемая опция -source 7
?
Ответ 1
Если ничего из этого не помогает (мой случай), вы можете установить его в свой pom.xml, например:
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
Как сказал этот крутой парень:
fooobar.com/questions/67778/...
Ответ 2
Пожалуйста, проверьте уровни языка проекта/модуля (Структура проекта | Проект, Структура проекта | Модули | имя модуля | Источники). Вы также можете посмотреть Настройки | Компилятор | Компилятор Java | Версия для байт-кода на модуле.
Установите также это:
Файл → Структура проекта → Модули:: Источники (рядом с контурами и зависимостями) и который имеет параметр "Уровень языка", который также необходимо установить правильно.
Ответ 3
[Для IntelliJ IDEA 2016.2]
Я хотел бы расширить часть ответа Петра Громова с помощью современного скриншота. Конкретно эта конкретная часть:
Вы также можете взглянуть на Настройки | Компилятор | Компилятор Java | Версия байт-кода для каждого модуля.
Я считаю, что (по крайней мере, в 2016.2): проверка различных коммитов в git
сбрасывает их до 1.5.
![Per-module bytecode version]()
Ответ 4
В качестве альтернативы вы можете применить maven-compiler-plugin с соответствующей версией java, добавив это в свой pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Ответ 5
Я попытался внести изменения в Intellij IDEA, как показано ниже:
1.
File >> Settings >> Build, Execution, Deployment >> Compiler >> Java Compiler >> project bytecode version: 1.8 >> Per-module bytecode version: 1.8
2.
File >> Project Structure >> Project Settings >> Project >> SDK : 1.8, Project Language : 8 - Lambdas
File >> Project Structure >> Project Settings >> Modules >> abc : Language level: 8 - Lambdas
но ничего не получилось, оно вернуло версии к java 1.5, как только я его сохранил.
Однако, добавив ниже строки в root (уровень проекта), pom.xml помог мне решить вышеупомянутую проблему: (оба варианта работали для меня)
Вариант 1:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
Вариант 2:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Ответ 6
Файл- > Структура проекта- > Настройки проекта- > Проект- > Уровень языка проекта
Файл- > Структура проекта- > Настройки проекта- > Модули- > Уровень языка
Изменить уровень с помощью раскрывающегося меню
Ответ 7
В командной строке (терминал Unix) Перейдите в корневую папку проекта и сделайте это
find . -type f -name '*.iml' -exec sed -i '' s/JDK_1_5/JDK_1_8/g {} +
Это изменит свойство языкового уровня во всех ваших .iml файлах проекта от java 1.5 до java 1.8.
Ответ 8
Во-первых, вам нужно изменить "версию байт-кода проекта" в разделе File > Settings
, Compiler > Java Compiler
Во-вторых, выполните полную перестройку.
Ответ 9
У меня такая же проблема, но с другой ситуацией. Я могу скомпилировать без каких-либо проблем с maven в командной строке (mvn clean install
), но в Intellij я всегда получал ошибку "java: diamond operator is not supported in -source 1.5"
компиляции, несмотря на то, что я установил maven-компилятор-плагин с java 1.8 в pom.xml.
Оказалось, что у меня есть настройки удаленного репозитория в моем файле настроек maven.xml, от которого зависит проект, но Intellij использует свой собственный maven, который не имеет одинаковых настроек с моим локальным maven.
Итак, мое решение меняло настройку Intellij maven (Settings -> Build, execution, Deployment -> Maven -> Maven home directory
) для использования локального maven.
Ответ 10
В IntelliJ Community Edition 2019.02 изменение следующих настроек помогло мне
Обновите File-> Проект structure-> Проект Settings-> Проект-> Уровень языка проекта до Java 11 (обновите до версии Java, которую вы хотите использовать в своем проекте), используя раскрывающийся список.
Обновление File-> Проект structure-> Проект Settings-> Модули-> Уровень языка
Обновите File-> Settings-> Сборка, Выполнение, Развертывание → Компилятор → Java Compiler-> Версия ByteCode проекта до java 11.
Обновите целевую версию для всех записей в File-> Settings-> Сборка, Выполнение, Развертывание → Компилятор → Java Compiler-> Для версии байт-кода модуля.
Ответ 11
У меня было следующее свойство, работающее для меня в IntelliJ 2017
<properties>
<java.version>1.8</java.version>
</properties>
Ответ 12
Еще одна вещь, которая может вызвать это, имеет неправильную version
проекта <parent>
.
В моем случае это указывало на несуществующий проект, и по какой-то причине версия IntelliJ понизила версию до 1.5 и позже, когда я исправил ее, она все еще интерпретировала целевую версию кода как 5 (несмотря на установку в 11).