Intellij feature (...) не поддерживается на этом языке. Я не могу скомпилировать

IntelliJ показывает мне эту ошибку

Я только что построил свой новый компьютер, и ни один из моих java файлов не работает... Мой обычный Intellij работал, когда я впервые его пробовал, но моя студия Android не установила, потому что не могла найти путь к jdk, Здесь - вопрос, который я задал об этом. Поскольку это не сработало, мне пришлось переустанавливать java несколько раз, и теперь мой IntelliJ не работает. Вот изображение ошибки (я получаю сообщение об ошибке, указывающее, что для каждого цикла не поддерживается этот уровень).

Я попытался установить JDK на свой диск D: и это не сработало. В настоящее время я пытаюсь использовать java 1.8u71 (попробовал u65 и 1.7u47), но ни один из них не работал.

Ответ 1

IntelliJ показывает мне эту ошибку

are not supported at this language level

Сопоставление SDK/JDK с уровнем языка проекта

Чтобы активировать функции языка Java в редакторе, вам нужно изменить свой модуль Project Structure или Module Settings, чтобы ваш Project SDK соответствовал уровню языка Project.

Project SDK (JDK) Java 1.5 соответствует уровню проекта языка 5...

Java 1.6 соответствует уровню языка 6...

Java 1.7 соответствует языковому уровню 7 и так далее.

пример

В зависимости от версии IntelliJ нажмите F4 или Ctrl + Alt + Shift - S на модуле на панели проекта, или нажмите Ctrl + Shift - A и введите либо "Структура проекта", либо "Настройки модуля", чтобы открыть диалоговое окно "Структура проекта".

В разделе " Параметры проекта " щелкните первый элемент в списке " Проект".

На приведенном ниже 1.8 (java version '1.8.0_72') экрана Project SDK 1.8 (java version '1.8.0_72') соответствует выбранному уровню языка SDK Default (8 - Lambdas, type annotations etc.) Поскольку Java 1.8 соответствует уровню SDK 8. Это активирует функции языка Java 8. для использования в редакторе.

project structure

Если у вас не установлен JDK в Project SDK, это другая проблема. Решите это сначала, нажав New и добавив JDK.

Ответ 2

Когда у меня было несколько независимых модулей в проекте, мне пришлось сделать ниже настройки в дополнение к @activedecay answer: В разделе Project Settings нажмите Modules. Выберите конкретный модуль. Выберите подходящий Language Level.

Снимок экрана

Ответ 3

У меня была такая же проблема, и ни одно из решений, которые я нашел, не работал.

Я использовал проекты Maven и решил попробовать запустить maven install. Он тоже сказал:

[ERROR]  thefile.java:[24,77] diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] theFile.java:[91,62] lambda expressions are not supported in -source 1.5
[ERROR] (use -source 8 or higher to enable lambda expressions)

Итак, я добавил свойства в файл Maven build pom.xml:

<properties>
    <spring.version>4.1.6.RELEASE</spring.version>
    <java.version>1.8</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
</properties>

И обновил проект Maven в IntelliJ. Это сработало!

Ответ 4

Другая проблема, которая возникла в результате этой ошибки в проекте Gradle, - это параметр sourceCompatibility в файле build.gradle. Это также должно соответствовать ожидаемому значению. Значение по умолчанию, которое я видел в IntelliJ при создании нового проекта Gradle, - 1.5. Если вы используете lambdas, например, это приведет к сбою сборки.

Ответ 5

У меня тоже была такая же проблема.

Когда я обращался к статическому методу интерфейса через имя интерфейса, я получил сообщение об ошибке

вызовы статического интерфейса не поддерживаются на этом уровне языка 5

Поскольку это Java 1.8, я проверил некоторые вещи:

  1. Я использую Intellij. Таким образом, выполнив CTRL + ALT + SHIFT + S откроется диалоговое окно "Структура проекта", перейдите к

    Проект → Уровень языка проекта

    установите для SDK значение по умолчанию (8-лямбды, аннотации типов и т.д.).

  2. В структуре проекта открыто

    Модули → Источники → Уровень языка

    установите для этого параметра значение по умолчанию (8-лямбда, аннотации типов и т.д.).

  3. Apply-> ОК.

Тогда ошибка исчезнет.

Ответ 6

У меня есть эта проблема, и я проверил как модули, так и настройки проекта. Project SDK: 1.8, у меня есть почему-то 1.8 (2). Тогда у меня есть Project Language Level: 8 аннотаций типа Lambdas и т.д.

Под модулями написано "Проект по умолчанию (8 - лямбды, аннотации типов и т.д.)

Тем не менее я получаю сообщение об ошибке "Ссылки на ресурсы не поддерживаются на уровне языка" 8 ""..?

Все, что у меня было, это блок try с надписью "try (! File.exists()) {.."

РЕДАКТИРОВАТЬ:

Итак, я прочитал, что легко получить сообщение об ошибке и подумать о IntelliJ, но оно касается вашего кода... Ну, я думаю, если вы увидели мою ошибку, вы заметите... Моя ошибка заключалась в том, что я сделал это в попытке, вместо IF.

Так что это не всегда вина IntelliJs. Иногда стоит проверить ваш код, как я! (Надеюсь, это поможет кому-то с ошибкой..)