12

我正在尝试使用 JDK-12 ea 构建一个项目。在尝试执行示例类时:

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 抛出读取的错误

错误:java:错误:无效的源版本: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 版本)。除了这个,我还需要配置一些东西吗?

4

4 回答 4

18

正确的方式™</h2>

支持 switch 表达式的 IntelliJ 最早的版本是 2019.1 版本,于 2019 年 3 月 27 日发布。您可以在这里获取:https ://www.jetbrains.com/idea/download 。当然,您还需要 JDK 12,并将其设置为您的项目 SDK。

然后您可以将语言级别设置为:

12 (Preview) - Switch expressions

有了这个,一切都应该工作。

如果没有,您可能需要检查您是否已经;

  • 将项目语言级别以及模块语言级别设置为“12(预览版)”
  • 将应用程序的运行配置中的执行 JRE 设置为 12(或默认值,即项目 SDK)。
  • 在 Settings -> 'Build, Execution, Deployment'/Compiler/Java Compiler 中设置正确的字节码版本。(将此字段留空以匹配语言级别)

手动配置 --enable-preview(无智能感知)

将我的评论变成答案。您可以通过以下方式将--enable-preview标志添加到 VM:

运行->编辑配置...

然后从左侧的树形菜单中选择您的主类,然后粘贴--enable-preview到“VM 选项”框中

在此处输入图像描述

您可以通过以下方式对编译器执行相同操作:

文件->设置...

然后在Build, Execution, Deployment -> Compiler -> Java Compiler下的树形菜单中,您可以放入--enable-preview“Additional command line parameters”框:

在此处输入图像描述

请注意,这样做之后智能感知仍然可能无法工作。我仍然在->s 下看到红色波浪线,并显示错误消息“意外令牌”。但是,当我单击运行按钮时,该类编译并运行得很好。

于 2019-01-12T13:00:44.957 回答
10

只是为了记录。我遇到了类似的错误,但使用的是 Java 14:

Error:java: error: invalid source release: 14

对我来说解决这个问题的方法是寻找 IDE 的每个地方,其中提到了另一个 Java 版本,但不是第 14 个。

我不得不改变的地方是:

文件 -> 项目结构 -> 项目设置

文件 -> 项目结构 -> 模块设置 -> 选项卡:来源:语言级别。

文件 -> 项目结构 -> 模块设置 -> 选项卡:依赖项:模块 SDK。

文件 -> 设置 -> 编译器 -> Java 编译器 -> 目标字节码版本。

于 2020-05-14T19:22:46.347 回答
3

在 IDEA v2018.3.2预览语言级别中,将--enable-preview参数添加到命令行。在 v2018.3.3 中没有 12预览级别,因此必须手动添加参数,正如您在评论中正确提到的那样。实验性功能不添加任何编译参数。

于 2019-01-14T17:30:27.243 回答
0

假设您面临一个 SpringBoot 项目的问题,该项目具有 pom.xml 中提到的依赖项(Maven 依赖项)。执行以下操作。

  1. 使用 cmd 或带有命令的终端检查机器的 jdk 版本:java -version。
  2. 在您的 pom.xml 中,更新 java 版本 <java.version><MACHINE'S JDK VERSION></java.version>

保存更改,您就可以开始了。

于 2021-06-14T12:15:54.117 回答