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




