【问题标题】:How do I solve java.lang.UnsupportedClassVersionError?如何解决 java.lang.UnsupportedClassVersionError?
【发布时间】:2021-08-05 18:58:26
【问题描述】:

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

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

为了查看一切是否正常,我收到以下错误(我认为是由于我的终端使用的 java 版本和 maven 使用的 java 版本存在一些冲突):

我在终端中使用 Java 11,并且已经下载了 Java 12 的 jdk,但我不确定如何将终端使用的 Java 版本更改为版本 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_HOME 以指向 Java 12,重新启动终端(以刷新环境变量),然后重试。
  • 您的问题解决了吗?我想知道你是否得到了我的答案?

标签: java maven visual-studio-code unsupported-class-version


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    看起来您正在尝试使用为 Java 12 编译的类并且您正在使用 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
    

    【讨论】:

      猜你喜欢
      • 2013-01-24
      • 2021-08-21
      • 2023-01-07
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      相关资源
      最近更新 更多