IntelliJ IDEA 13 использует Java 1.5, несмотря на настройку на 1.7

Несмотря на указание 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 изменение следующих настроек помогло мне

  1. Обновите File-> Проект structure-> Проект Settings-> Проект-> Уровень языка проекта до Java 11 (обновите до версии Java, которую вы хотите использовать в своем проекте), используя раскрывающийся список.

  2. Обновление File-> Проект structure-> Проект Settings-> Модули-> Уровень языка

  3. Обновите File-> Settings-> Сборка, Выполнение, Развертывание → Компилятор → Java Compiler-> Версия ByteCode проекта до java 11.

  4. Обновите целевую версию для всех записей в File-> Settings-> Сборка, Выполнение, Развертывание → Компилятор → Java Compiler-> Для версии байт-кода модуля.

Ответ 11

У меня было следующее свойство, работающее для меня в IntelliJ 2017

  <properties>
        <java.version>1.8</java.version>       
  </properties>

Ответ 12

Еще одна вещь, которая может вызвать это, имеет неправильную version проекта <parent>.

В моем случае это указывало на несуществующий проект, и по какой-то причине версия IntelliJ понизила версию до 1.5 и позже, когда я исправил ее, она все еще интерпретировала целевую версию кода как 5 (несмотря на установку в 11).