此语言级别不支持intellijfunction(…)。 我无法编译

IntelliJ正在向我显示此错误

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

我试图在我的D:驱动器上安装JDK,但这不起作用。 我目前正在尝试使用java 1.8u71(尝试过u65和1.7u47),但没有一个有效。

IntelliJ正在向我显示此错误

在此语言级别不受支持

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

要在编辑器中激活Java语言function,您需要更改模块的项目结构模块设置,以确保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 SDK 1.8 (java version '1.8.0_72')匹配选定的语言级别SDK Default (8 - Lambdas, type annotations etc.)因为Java 1.8与SDK级别8匹配。 这将激活Java 8语言function在编辑器中使用。

项目结构

如果您没有在Project SDK下设置JDK,那是一个不同的问题。 首先通过单击“ New并添加JDK来解决该问题。

当我在项目中有多个独立模块时,除了@ activedecay的答案之外,我还必须进行以下设置:在Project Settings ,单击Modules 。 选择特定模块。 选择适当的Language Level

截图

我遇到了同样的问题,我找不到任何解决方案。

我正在使用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文件中:

  4.1.6.RELEASE 1.8 ${java.version} ${java.version}  

并刷新了IntelliJ中的Maven项目。 有效!

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

我也有同样的问题。

当我通过界面名称访问接口的静态方法时,我得到错误说

此语言级别不支持静态接口方法调用5

由于这是Java 1.8,我检查了一些东西:

  1. 我正在使用Intellij。 因此,通过执行CTRL + ALT + SHIFT + S项目结构对话框,转到

    项目 – >项目语言水平

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

  2. 在项目结构中打开

    模块 – >来源 – >语言水平

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

  3. 应用 – >好的。

然后错误就会消失。