使用Java 21启动Neo4j 5.19.0服务器遇Jersey依赖报错,求解决方案
解决Neo4j 5.19.0在Java 21环境下启动的Jersey版本兼容问题
以下是几个可行的解决建议:
升级Neo4j到更高版本
Neo4j 5.19.0之后的版本(比如5.20及以上)已经修复了Jersey版本过低的问题,直接升级到官方最新的5.x稳定版,就能原生适配Java 21,不用手动调整依赖。手动替换Jersey依赖包
如果暂时没法升级Neo4j,可以手动替换安装目录里的旧版Jersey jar包:- 找到Neo4j安装目录下的
lib文件夹,删除所有版本为2.34的jersey-*开头的jar文件(比如jersey-server-2.34.jar、jersey-common-2.34.jar等) - 下载Jersey 2.40版本的核心组件jar包(包括server、common、client、container-servlet等),放到
lib目录中 - 确保所有替换的Jersey jar包版本一致,避免出现依赖冲突
- 找到Neo4j安装目录下的
添加临时JVM兼容参数
启动Neo4j时添加以下JVM参数,绕过ASM的class版本检查:-Djdk.util.jar.enableMultiRelease=false这是临时 workaround,禁用了JAR的多版本支持,可能存在潜在兼容性风险,不建议长期使用。
使用官方Docker镜像
直接用官方提供的Neo4j 5.19.0 Docker镜像,官方已经配置好兼容Java 21的依赖环境,启动命令示例:docker run -p 7474:7474 -p 7687:7687 neo4j:5.19.0
内容的提问来源于stack exchange,提问作者Laurent T
相关产品推荐
相关产品推荐

