Embedded-Cassandra在Java 21中运行失败,求解决方案及版本支持
问题解决:Java 21升级后Embedded-Cassandra启动失败(Unrecognized VM option 'UseBiasedLocking')
我最近将构建环境从Java 11升级到Java 21,同时更新了pom文件中的embedded-cassandra至最新版本。运行内存内测试时出现如下错误:
2024-03-20 19:01:59.428(GMT) ERROR Unrecognized VM option 'UseBiasedLocking' 2024-03-20 19:01:59.431(GMT) ERROR Error: Could not create the Java Virtual Machine. 2024-03-20 19:01:59.431(GMT) ERROR Error: A fatal exception has occurred. Program will exit.
解决方案
- 移除
UseBiasedLockingJVM参数:该参数在Java 15被废弃,Java 21已完全移除。检查Embedded-Cassandra的所有配置入口(pom插件配置、测试类启动参数、独立JVM参数文件等),找到添加该参数的位置并删除。 - 覆盖Embedded-Cassandra默认JVM参数:如果使用Spring Boot集成的starter,可在测试环境配置文件中直接替换过时参数。例如在
application-test.yml中:embedded-cassandra: jvm-options: - "-Xmx512m" - "-Xms512m" # 去掉原有-XX:+UseBiasedLocking配置
Embedded-Cassandra对Java 21的支持情况
主流Embedded-Cassandra实现(如cassandra-unit、embedded-cassandra)的最新稳定版本已支持Java 21。需确保你使用的是最新版,同时注意:原生Apache Cassandra从4.1版本开始正式支持Java 17+,4.1.3及以上版本对Java 21兼容性更好——Embedded-Cassandra基于最新Cassandra内核才能在Java 21环境正常运行。
内容的提问来源于stack exchange,提问作者falcon
相关产品推荐
相关产品推荐

