【问题标题】:How to fix Java UnsupportedClassVersionError [duplicate]如何修复 Java UnsupportedClassVersionError [重复]
【发布时间】:2021-02-20 19:38:13
【问题描述】:

我在尝试复习我的 Java 时遇到了几次这个错误。在互联网上查找解决方案,大多数建议是编译或运行带有标志/选项参数的文件以指定正确的解释器版本。我的问题是,有没有更永久的解决方案? (我正在使用 vscode。猜想我可以在工作区中的 settings.json 文件中添加一些东西——但是什么?)

Error: LinkageError occurred while loading main class com.example.demo.DemoApplication
        java.lang.UnsupportedClassVersionError: com/example/demo/DemoApplication has been compiled by a more recent version of the Java Runtime (class file version 59.65535), this version of the Java Runtime only recognizes class file versions up to 58.0

这是我的版本详情

$ java --version
java 14.0.2 2020-07-14
Java(TM) SE Runtime Environment (build 14.0.2+12-46)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)

每当我从命令行编译和运行 java 文件时,我都希望不必使用标志。如果您能首先解释为什么会发生此问题,那么您会得到奖励吗?以前学java的时候,JRE和JDK都是分开下载安装的。我可以理解错误地下载了不兼容的版本,但现在 JRE 似乎与 JDK 一起预打包。如果是这种情况,怎么可能有不兼容的编译器和解释器版本?

【问题讨论】:

标签: java visual-studio-code vscode-settings javac java-14


【解决方案1】:

此错误告诉您,您的类是在比您尝试运行的版本更高的 Java 版本上编译的。更具体地说,在本例中,您使用 Java 15 编译了您的类并尝试使用 Java 14 运行它。

根据您的情况,您有两种解决错误的方法:使用较早版本的 Java 编译您的代码,或在较新的 Java 版本上运行您的代码。

通过命令行修复。如果您准备完全迁移到较新的 JDK,则应下载较新版本并确保正确设置 PATH 和 JAVA_HOME 环境变量。假设你有 Java 15 JRE,你可以使用打包的 java 命令运行你的代码。

IntelliJ IDEA。您还可以控制用于在 IntelliJ IDEA 中编译和运行的 Java 版本。转到 File -> Project Structure... -> Project Settings -> Project 并更改您的 Project SDKProject 语言级别。接下来在较新的 JRE 上运行您的项目:转到 Run -> Edit Configurations... 并将您的 JRE 更改为 15。现在,当您运行您的项目时,它将使用 Java 15 JRE 运行。 p>

【讨论】:

    【解决方案2】:

    java.lang.UnsupportedClassVersionError: com/example/demo/DemoApplication 已由更新版本的 Java Runtime(类文件版本 59.65535)编译,此版本的 Java Runtime 只能识别最高 58.0 的类文件版本 编译运行项目时设置JDK为同一个:

    也就是说,你的文件是用JDK15编译的,但当前运行时,也安装在你机器上的是JDK14。构建和编译jdk版本不匹配导致此错误。

    有两个重要的配置可以正确配置您的环境和项目:java.configuration.runtimesjava.home。前者指定项目执行环境的选项;后者指定您的语言服务器的执行环境。

    你已经安装了JDK14,设置上面两个设置使用它可以解决这个错误。

    "java.home": "\PATH TO JDK14\",
    "java.configuration.runtimes": [
        {
            "name": "JavaSE-14",
            "path": "\PATH TO JDK14\",
            "sources": "\PATH TO JDK14\lib\src.zip",
            "javadoc": "https://docs.oracle.com/en/java/javase/14/docs/api",
            "default": true
        },      
    ],
    

    清理 Java 语言服务器空间并在 VS Code 中重新加载窗口,然后再次运行。

    更多关于java.configuration.runtimesjava.home的信息,请参考Configure JDK

    【讨论】:

      猜你喜欢
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      • 2015-11-22
      • 2013-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多