You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Mockito 5.17.0是否支持Java 24?初始化报错求助

Mockito与Java 24兼容问题及解决方案

1. Mockito对Java 24的支持情况

Mockito 5.17.0依赖的Byte Buddy版本未适配Java 24的版本字符串格式,导致无法识别JVM版本,进而触发初始化错误。后续发布的Mockito 5.18.0及以上版本已更新依赖的Byte Buddy,完成了对Java 24的兼容支持。

2. 解决方法

  • 升级Mockito到兼容版本:将Mockito版本升级至5.18.0或更高,新版本已修复Java 24的版本识别问题。修改pom.xml中的依赖配置:

    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>5.18.0</version>
        <scope>test</scope>
    </dependency>
    
  • 手动升级Byte Buddy版本:若无法升级Mockito,可在pom.xml中强制指定兼容Java 24的Byte Buddy版本(需用1.14.11及以上):

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>net.bytebuddy</groupId>
                <artifactId>byte-buddy</artifactId>
                <version>1.14.11</version>
            </dependency>
            <dependency>
                <groupId>net.bytebuddy</groupId>
                <artifactId>byte-buddy-agent</artifactId>
                <version>1.14.11</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
  • 切换MockMaker实现:临时改用子类继承式Mock创建方式,绕过inline代理的版本问题。在src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker文件中添加内容:

    mock-maker-subclass
    

    注意:此方式会限制部分Mockito特性(如final类/方法的Mock)。

内容的提问来源于stack exchange,提问作者user20745683

火山引擎 最新活动