韩小小鱼 2024-02-29 20:19 采纳率: 100%
浏览 22
已结题

VScode 运行Java报错 Multi-constant case labels supported from Java 14 onwards only

VScode 报错 Multi-constant case labels supported from Java 14 onwards only
命令行运行没问题,但是在VScode中运行时报错“Multi-constant case labels supported from Java 14 onwards only”
只下载过一个版本,Java 21

import java.util.Scanner;
public class test1{
        public static void main(String[] args){

            /*键盘录入星期日,判断是工作日还是休息日*/
            Scanner s1 = new Scanner (System.in);
            System.out.println("请输入星期日:");
            int week = s1.nextInt();
            switch (week){
                case 6,7:
                System.out.println("今天是休息日");
                break;
                case 1,2,3,4,5 :
                System.out.println("今天是工作日");
                break;
                default : 
                System.out.println("日期输入出现问题");
                break;
            }
        }
}

刚开始学,不太懂,希望懂的佬指点一下
谢谢各位答主的帮助,问题已经成功解决
在这里总结一下问题的解决过程:
由于我安装的是Java21,这个新的版本是不需要手动设置环境变量就可以通过命令行使用的。
因此我并未去设置环境变量,听了各位答主的建议,我去设置了一下环境变量,然后在VScode中配置了对应的环境变量,该问题解决了。原来VScode可能内置了JDK1.8,所以它可以运行jiava程序但是对于后面新版本的更新内容是不支持的。
如果各位新朋友遇到类似的问题,也可以去设置一下我上面说的两点,至于具体的设置方法,网上有许多教程,我就不再重复了。只需要注意去看比较新的教程就可以了。
最后,再次向各位答主表示诚挚的感谢!

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-29 20:21
    关注

    引自免费微信小程序:皆我百晓生

    根据你的错误提示和代码内容,问题在于你使用了 Java 14 及更高版本才支持的多常量 case 标签特性。然而,尽管你提到只下载过 Java 21 版本,VS Code 编译器或其内置的 Java 插件可能配置为使用低于 Java 14 的语言级别来编译你的代码。

    为了在 VS Code 中正确运行使用多常量 case 标签的 Java 程序,请按照以下步骤进行设置:

    1. 检查并设置项目语言级别: 打开项目的 pom.xml(Maven)或 build.gradle(Gradle)文件以确保它指定了 Java 14 或更高版本。如果没有这些文件,或者你没有使用构建工具,直接修改项目的 settings.json 配置文件。

      .vscode/settings.json 文件中添加或更新如下内容:

      {
          "java.configuration.runtimes": [
              {
                  "name": "JavaSE-14",
                  "path": "/path/to/your/jdk-14-home",
                  "default": true
              }
          ],
          "java.project.languageLevel": "14"
      }
      

      请将 /path/to/your/jdk-14-home 替换为实际的 Java 14 安装路径。

    2. 检查并设置默认 JDK 版本: 确保你在 VS Code 中设置了正确的默认 JDK 版本。可以通过命令面板(Ctrl + Shift + PCmd + Shift + P)输入 Java: Configure Runtime 来选择或配置 Java 运行时环境。

    3. 重启 VS Code 并清理编译缓存: 保存所有更改后,重启 VS Code,并清除已有的编译缓存,以便重新编译代码。

    经过以上配置,你的代码应该能在 VS Code 中正常编译和运行。不过,如果你确实希望在较低版本的 Java 上兼容此程序,可以改写 switch 语句,如下所示:

    import java.util.Scanner;
    
    public class Test1 {
        public static void main(String[] args) {
    
            Scanner s1 = new Scanner(System.in);
            System.out.println("请输入星期日:");
            int week = s1.nextInt();
    
            // 改写 switch 语句以适应 Java 13 及更低版本
            if (week == 6 || week == 7) {
                System.out.println("今天是休息日");
            } else if (week >= 1 && week <= 5) {
                System.out.println("今天是工作日");
            } else {
                System.out.println("日期输入出现问题");
            }
        }
    }
    

    这段代码无需任何额外配置,在任何 Java 版本上都能正确执行。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月8日
  • 已采纳回答 2月29日
  • 修改了问题 2月29日
  • 创建了问题 2月29日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题