此语言级别不支持 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 版本,在“项目”窗格中的模块上按 F4 或 Ctrl + 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,我检查了一些东西:
我正在使用 Intellij。所以通过 CTRL+ALT+SHIFT+S项目结构对话框打开,转到
Project -> Project language level
将其设置为 SDK 默认值(8-Lambdas、类型注释等)。
在项目结构中打开
Modules -> Sources -> Language level
将其设置为项目默认值(8-Lambdas、类型注释等)。
应用->确定。
然后错误就会消失。
让我用一张图说出解决方案。
- 文件 -> 项目结构 -> 模块 -> 属性选项卡 -> 源兼容性 (Java 8)
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 版本,在“项目”窗格中的模块上按 F4 或 Ctrl + 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,我检查了一些东西:
我正在使用 Intellij。所以通过 CTRL+ALT+SHIFT+S项目结构对话框打开,转到
Project -> Project language level
将其设置为 SDK 默认值(8-Lambdas、类型注释等)。
在项目结构中打开
Modules -> Sources -> Language level
将其设置为项目默认值(8-Lambdas、类型注释等)。
应用->确定。
然后错误就会消失。
让我用一张图说出解决方案。
- 文件 -> 项目结构 -> 模块 -> 属性选项卡 -> 源兼容性 (Java 8)