如何修复java.lang.UnsupportedClassVersionError:测试(类文件版本为52.65535)已使用不受支持的预览功能进行了编译?

时间:2019-04-01 03:18:19

标签: java visual-studio-code

当我尝试使用vscode调试Java程序时收到此错误:

java.lang.UnsupportedClassVersionError: 
test (class file version 52.65535) was compiled with preview features that are unsupported. 
This version of the Java Runtime only recognizes preview features for class file version 55.65535

这是launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Debug (Launch) - Current File",
            "request": "launch",
            "mainClass": "${file}"
        },
        {
            "type": "java",
            "name": "Debug (Launch)-test",
            "request": "launch",
            "mainClass": "test"
        }
    ]
}

这是java的版本:

java --version:
openjdk 11.0.2 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9-Ubuntu-3ubuntu118.04.2)
OpenJDK 64-Bit Server VM (build 11.0.2+9-Ubuntu-3ubuntu118.04.2, mixed mode, sharing)

javac --version:
javac 11.0.2

该程序可以在ubuntu原始终端上运行,但是会在vscode中引发错误。

如果您能帮助我,那将非常好。

2 个答案:

答案 0 :(得分:1)

在launch.json文件中,将“ vmArgs”:“ --enable-preview”添加到调试配置中。

{
   ...
   "vmArgs": "--enable-preview"
}

答案 1 :(得分:0)

更新:经过大量的谷歌搜索后,我想我找到了答案:

这是由于与vscode中编译的代码版本以及系统中正在运行的JDK版本不匹配。

  1. 在您的VScode中,您的编译器正在尝试使用 Java 8 (类文件版本52.65535)进行编译,同时您的系统正在运行的类文件版本55.65535。 Java 11 。在这种情况下,请先干净地卸载系统中的Java 11,然后按照此处的卸载说明进行操作:https://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html#A1096903

  2. 卸载后,从oracle下载并安装JDK 8: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  3. 重新打开您的vscode项目,请执行以下操作:

  4. 打开您的launch.json文件,在配置中添加以下行:

    “ vmArgs”:“ --enable-preview”

  5. 在要编译和运行的文件中,在vscode中按F1并执行以下操作:

    • Java:清理Java语言服务器工作区

    • Java:强制Java编译

  6. 按F5键,您的代码将编译并运行!

参考:https://www.baeldung.com/java-lang-unsupportedclassversion