当我尝试使用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中引发错误。
如果您能帮助我,那将非常好。
答案 0 :(得分:1)
在launch.json文件中,将“ vmArgs”:“ --enable-preview”添加到调试配置中。
{
...
"vmArgs": "--enable-preview"
}
答案 1 :(得分:0)
更新:经过大量的谷歌搜索后,我想我找到了答案:
这是由于与vscode中编译的代码版本以及系统中正在运行的JDK版本不匹配。
在您的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
卸载后,从oracle下载并安装JDK 8: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
重新打开您的vscode项目,请执行以下操作:
打开您的launch.json文件,在配置中添加以下行:
“ vmArgs”:“ --enable-preview”
在要编译和运行的文件中,在vscode中按F1并执行以下操作:
Java:清理Java语言服务器工作区
Java:强制Java编译
按F5键,您的代码将编译并运行!
参考:https://www.baeldung.com/java-lang-unsupportedclassversion