我如何解决java.lang.UnsupportedClassVersionError?

How do I solve java.lang.UnsupportedClassVersionError?

我正在使用 maven,我正在使用 vs code 作为我的编辑器,当我 运行 mvn package,然后:

java -cp target/rationalclosure-1.0-SNAPSHOT-jar-with-dependencies.jar org.rationalclosure.App

为了查看是否一切正常,我收到以下错误(我相信是由于我的终端正在使用哪个版本的 java 以及 maven 使用哪个版本的冲突):

我在我的终端中使用 Java 11,并且已经为 java 12 下载了 jdk,但我不确定如何更改 [= 的版本30=] 由我的终端使用到版本 12。我的问题是:

a.) 这样做会解决问题吗?
b.) 我该怎么做?

注意:我在 Windows 上的 Ubuntu 应用程序上使用 wsl 作为我的终端。

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/tweetyproject/logics/pl/syntax/Proposition has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 55.0
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        at org.rationalclosure.App.main(App.java:11)

看起来你正在尝试使用为 Java 12 编译的 class 而你正在使用 Java 11。所以你可以升级你的 java版本到 12,或者你必须查看你的依赖项并可能获得旧版本。这真的完全取决于您的限制,但如果可以的话,我建议您使用最新的 Java 运行时。

以下是版本列表,供参考。

45 = Java 1.1
46 = Java 1.2
47 = Java 1.3
48 = Java 1.4
49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13

打开命令面板并选择Java:配置Java运行时。转向 Java Tooling Runtime,select java12 as JDK for Language Server:

不要忘记重新加载Window以使此更改生效。