此 ObjectWeb 错误是什么意思:“不支持的类文件主要版本 56”以及如何修复它?

当我尝试运行测试时,我正在恢复一个处于损坏状态的项目,但出现此错误:


Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.22.0:test failed: Unsupported class file major version 56 

这意味着什么?有什么想法如何修复它吗?


Maven项目包括:


    <pluginManagement>

        <plugins>

            <plugin> 

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-surefire-plugin</artifactId>

                <version>2.22.0</version>

            </plugin>

        </plugins>

    </pluginManagement>

但注释掉该插件没有什么区别。

更新:我将 Maven 配置源和目标更改为 Java 11 和 Java 10,如下所示:


        <plugin>

            <groupId>org.apache.maven.plugins</groupId>

            <artifactId>maven-compiler-plugin</artifactId>

            <version>3.8.1</version>

            <configuration>

                <source>10</source>

                <target>10</target>

            </configuration>

        </plugin>

在这两种情况下,错误都更改为:


[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.0:test (default-test) on project projectxserver: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.22.0:test failed: Unsupported class file major version 55 -> [Help 1]

所以,我猜这个版本也不被支持。


绝地无双
浏览 283回答 1
1回答

翻过高山走不出你

您正在使用 Java 12(并为其编译代码,以便生成的类文件仅对 Java 12 及更高版本有效)。您在幕后使用的 Objectweb 版本不支持读取 Java 12 类文件(这是版本 56 对应的)。简单的修复方法是根据您需要使用的 Objectweb 版本重新配置您的构建以针对 Java 11 或更早版本进行编译。可能需要进行一些实验。如果问题已得到解决,也可以更新到最新版本的 objectweb,但这可能会破坏堆栈的其他部分,因此如果您这样做,请务必升级所有内容。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java