此语言级别不支持 intellij 功能 (...)。我无法编译

intellij feature (...) not supported at this language level. I can't compile

IntelliJ 正在向我展示 this error

我刚刚组装了我的新电脑,none 我的 java 东西正在工作......我的常规 Intellij 在我第一次尝试时可以工作,但我的 android 工作室会未安装,因为找不到 jdk 的路径。 Here 是我问的问题。由于那不起作用,我不得不多次重新安装 java,现在我的 IntelliJ 无法正常工作。这是错误的图片(我收到一个错误,告诉我此语言级别不支持 for-each 循环)。

我已经尝试在我的 D: 驱动器上安装 JDK 但没有成功。我目前正在尝试使用 java 1.8u71(已尝试过 u65 和 1.7u47),但其中 none 有效。

IntelliJ is showing me this error

将 SDK/JDK 与项目语言级别匹配

要在编辑器中激活 Java 语言功能,您需要将模块的 项目结构 模块设置 更改为确保您的 Project SDK 符合 Project 语言级别

项目 SDK (JDK) Java 1.5 匹配项目语言级别 5 ...

Java 1.6 匹配语言级别 6 ...

Java 1.7 匹配语言级别 7,依此类推。

例子

根据您的 IntelliJ 版本,在“项目”窗格中的模块上按 F4Ctrl + Alt + Shift - S,或者按 Ctrl + Shift - A 并键入 "Project Structure" 或 "Module Settings" 打开“项目结构”对话框。

Project Settings 部分下,单击列表中的第一项,Project

在下面的屏幕截图中,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 SDK 下设置 JDK,那就是另一个问题了。首先通过单击 New 并添加 JDK.

来解决该问题

我遇到了同样的问题,none 我找到的解决方案有效。

我正在使用 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 构建 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>

并刷新了IntelliJ中的Maven项目。成功了!

我在 Gradle 项目中导致此错误的另一个问题是 build.gradle 文件中的 sourceCompatibility 设置。这也必须与您期望的值相匹配。我看到 IntelliJ 在创建新的 Gradle 项目时使用的默认值是 1.5。例如,如果您使用的是 lambda,这将导致构建失败。

当我的项目中有多个独立的模块时,除了之外,我还需要做以下设置: 在 Project Settings 下,单击 Modules。 Select 特定模块。 Select合适Language Level.

我也遇到了同样的问题

当我通过接口名称访问接口的静态方法时,出现错误

static interface method invocations are not supported at this language level 5

因为这是 Java 1.8,我检查了一些东西:

  1. 我正在使用 Intellij。所以通过 CTRL+ALT+SHIFT+S项目结构对话框打开,转到

    Project -> Project language level

    将其设置为 SDK 默认值(8-Lambdas、类型注释等)。

  2. 在项目结构中打开

    Modules -> Sources -> Language level

    将其设置为项目默认值(8-Lambdas、类型注释等)。

  3. 应用->确定。

然后错误就会消失。

让我用一张图说出解决方案。

  • 文件 -> 项目结构 -> 模块 -> 属性选项卡 -> 源兼容性 (Java 8)