You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行neo4j-admin dump命令失败 报Java非法访问错误

报错原因

该报错由Java版本与Neo4j版本不兼容直接导致:

  • Neo4j 3.5.x 系列官方仅适配Java 8、Java 11两个长期支持版本
  • 你当前使用的Java 16启用了严格的模块访问控制,默认禁止未授权模块访问JDK内部API,而Neo4j 3.5.17的页面缓存组件依赖sun.nio.ch内部包、异常处理逻辑需要反射访问java.lang.Throwable的内部字段,两个访问请求都被Java 16拦截,最终抛出权限错误。

另外你执行的dump命令本身也存在参数问题:--to参数需要指定具体的备份输出文件路径,不能直接传入目录路径./,否则即使JDK版本正确也会执行失败。

修复方法

按优先级从高到低选择以下方案即可:

  • 方案一(官方推荐,无兼容风险):切换运行JDK到兼容版本
    1. 安装JDK 11(Neo4j 3.5系列兼容性最优的高版本JDK)
    2. 执行dump命令前,在当前终端临时指定JDK路径,不需要修改系统全局Java配置,示例(根据你实际的JDK安装路径调整):
      export JAVA_HOME=/your/jdk11/install/path
      export PATH=$JAVA_HOME/bin:$PATH
      
    3. 确认Neo4j服务已经完全停止,执行修正后的dump命令:
      ./bin/neo4j-admin dump --database=graph.db --to=./neo4j-backup.dump
      
  • 方案二(临时应急,不推荐生产环境使用):手动放开Java 16的模块访问限制
    如果暂时无法切换JDK版本,可以编辑bin/neo4j-admin启动脚本,在JVM启动参数段追加以下配置,绕过模块访问校验:
    --add-exports java.base/sun.nio.ch=ALL-UNNAMED
    --add-opens java.base/java.lang=ALL-UNNAMED
    
    该方案未经过官方兼容性测试,可能触发其他未知运行异常,仅适合临时救急使用。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 18:54:28