Error:java: error: invalid source release: 13 using JDK12 with IntelliJ
Error:java: error: invalid source release: 13 using JDK12 with IntelliJ
我正在尝试用 JDK-12 ea 构建一个项目。
尝试执行样本时 class:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int value = scanner.nextInt();
// After JEP-325
switch (value) {
case 1 ->System.out.println("one");
case 2 ->System.out.println("two");
default ->System.out.println("many");
}
}
IDE 抛出读取
的错误
Error:java: error: invalid source release: 13
相关项目配置屏幕:
模块设置
SDK
编译器设置
关于 IDE:
IntelliJ IDEA 2018.3.3 (Community Edition)
Build #IC-183.5153.38, built on January 9, 2019
JRE: 1.8.0_152-release-1343-b26 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.13.6
尝试将语言级别切换回 12,没有实验性功能,但它以
结束
我记得最近成功使用了实验性功能(不确定确切的 IntelliJ 版本)。除此以外我还需要配置一些更改吗?
正确的方式™
支持 switch 表达式的 IntelliJ 最早版本是 2019.1 版本,于 2019 年 3 月 27 日发布。您可以在这里获取:https://www.jetbrains.com/idea/download。当然你还需要JDK 12,并将其设置为你的项目SDK。
那么您可以将语言级别设置为:
12 (Preview) - Switch expressions
有了它,一切都应该正常了。
如果没有,您可能需要检查一下您是否已经;
- 将项目语言级别以及模块语言级别设置为“12(预览版)”
- 将应用程序运行配置中的执行JRE设置为12(或默认,即项目SDK)。
- 在设置 -> 'Build, Execution, Deployment'/Compiler/Java 编译器中设置正确的字节码版本。 (将此字段留空以匹配语言级别)
手动配置--enable-preview(无智能感知)
将我的评论变成答案。您可以通过以下方式将 --enable-preview
标志添加到 VM:
运行 -> 编辑配置...
然后从左侧的树形菜单中选择您的主 class,然后将 --enable-preview
粘贴到“VM 选项”框中
您可以通过以下方式对编译器执行相同的操作:
文件 -> 设置...
然后在Build, Execution, Deployment下的树形菜单中 -> Compiler -> Java Compiler 你可以把--enable-preview
放在“Additional command line parameters”框中:
请注意,这样做之后智能感知可能仍无法正常工作。我仍然在 ->
下看到红色波浪线,错误消息为“意外标记”。但是,当我单击 运行 按钮时,class 编译并且 运行 很好。
在 IDEA v2018.3.2 Preview 语言级别添加 --enable-preview 参数到命令行。在 v2018.3.3 中没有 12 Preview 级别,因此必须手动添加参数,正如您在评论中正确提到的那样。 实验性功能 不添加任何编译参数。
仅作记录。我遇到了类似的错误,但是 Java 14:
Error:java: error: invalid source release: 14
对我来说解决问题的方法是在 IDE 的每个地方都提到另一个 Java 版本,而不是第 14 个版本。
我必须更改的地方是:
文件 -> 项目结构 -> 项目设置
文件 -> 项目结构 -> 模块设置 -> 选项卡:来源:语言级别。
文件 -> 项目结构 -> 模块设置 -> 选项卡:依赖项:模块 SDK。
文件 -> 设置 -> 编译器 -> Java 编译器 -> 目标字节码版本。
假设您正面临一个 SpringBoot 项目的问题,该项目具有 pom.xml 中提到的依赖项(Maven 依赖项)。执行以下操作。
- 使用 cmd 或终端命令检查 jdk 机器版本:java -version.
- 在您的 pom.xml 中,更新 java 版本
<机器的 JDK 版本>
保存更改,一切顺利。
我正在尝试用 JDK-12 ea 构建一个项目。 尝试执行样本时 class:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int value = scanner.nextInt();
// After JEP-325
switch (value) {
case 1 ->System.out.println("one");
case 2 ->System.out.println("two");
default ->System.out.println("many");
}
}
IDE 抛出读取
的错误Error:java: error: invalid source release: 13
相关项目配置屏幕:
模块设置
SDK
编译器设置
IntelliJ IDEA 2018.3.3 (Community Edition) Build #IC-183.5153.38, built on January 9, 2019 JRE: 1.8.0_152-release-1343-b26 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o macOS 10.13.6
尝试将语言级别切换回 12,没有实验性功能,但它以
结束我记得最近成功使用了实验性功能(不确定确切的 IntelliJ 版本)。除此以外我还需要配置一些更改吗?
正确的方式™
支持 switch 表达式的 IntelliJ 最早版本是 2019.1 版本,于 2019 年 3 月 27 日发布。您可以在这里获取:https://www.jetbrains.com/idea/download。当然你还需要JDK 12,并将其设置为你的项目SDK。
那么您可以将语言级别设置为:
12 (Preview) - Switch expressions
有了它,一切都应该正常了。
如果没有,您可能需要检查一下您是否已经;
- 将项目语言级别以及模块语言级别设置为“12(预览版)”
- 将应用程序运行配置中的执行JRE设置为12(或默认,即项目SDK)。
- 在设置 -> 'Build, Execution, Deployment'/Compiler/Java 编译器中设置正确的字节码版本。 (将此字段留空以匹配语言级别)
手动配置--enable-preview(无智能感知)
将我的评论变成答案。您可以通过以下方式将 --enable-preview
标志添加到 VM:
运行 -> 编辑配置...
然后从左侧的树形菜单中选择您的主 class,然后将 --enable-preview
粘贴到“VM 选项”框中
您可以通过以下方式对编译器执行相同的操作:
文件 -> 设置...
然后在Build, Execution, Deployment下的树形菜单中 -> Compiler -> Java Compiler 你可以把--enable-preview
放在“Additional command line parameters”框中:
请注意,这样做之后智能感知可能仍无法正常工作。我仍然在 ->
下看到红色波浪线,错误消息为“意外标记”。但是,当我单击 运行 按钮时,class 编译并且 运行 很好。
在 IDEA v2018.3.2 Preview 语言级别添加 --enable-preview 参数到命令行。在 v2018.3.3 中没有 12 Preview 级别,因此必须手动添加参数,正如您在评论中正确提到的那样。 实验性功能 不添加任何编译参数。
仅作记录。我遇到了类似的错误,但是 Java 14:
Error:java: error: invalid source release: 14
对我来说解决问题的方法是在 IDE 的每个地方都提到另一个 Java 版本,而不是第 14 个版本。
我必须更改的地方是:
文件 -> 项目结构 -> 项目设置
文件 -> 项目结构 -> 模块设置 -> 选项卡:来源:语言级别。
文件 -> 项目结构 -> 模块设置 -> 选项卡:依赖项:模块 SDK。
文件 -> 设置 -> 编译器 -> Java 编译器 -> 目标字节码版本。
假设您正面临一个 SpringBoot 项目的问题,该项目具有 pom.xml 中提到的依赖项(Maven 依赖项)。执行以下操作。
- 使用 cmd 或终端命令检查 jdk 机器版本:java -version.
- 在您的 pom.xml 中,更新 java 版本
<机器的 JDK 版本>
保存更改,一切顺利。