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

Windows 11安装Cassandra触发IllegalAccessError问题求助

Cassandra启动错误解决方案

原因分析

这些IllegalAccessError是Cassandra与Java运行环境不兼容导致的:

  1. 错误日志中出现java.base模块标识,说明实际运行的是Java 9及以上版本。Java 9引入的模块系统(JPMS)会禁止未命名模块(如Cassandra)访问JDK内部私有类(比如sun.nio.ch.DirectBuffer、sun.rmi.registry.RegistryImpl),而老版本Cassandra依赖这些内部API。
  2. 若确实使用Java 1.8,可能是用了非Oracle的JDK(如OpenJDK),部分老版本Cassandra仅兼容Oracle JDK 8的内部实现。

解决步骤

1. 切换到Oracle JDK 8(优先推荐)

  • 执行以下命令确认当前Java版本:
    java -version
    
  • 安装Oracle JDK 8,并将其设置为系统默认Java:
    • 打开「环境变量」设置,修改JAVA_HOME为Oracle JDK 8的安装路径(例如C:\Program Files\Java\jdk1.8.0_381)
    • 将%JAVA_HOME%\bin移至系统Path变量的最顶端,确保优先使用该JDK

2. 适配Java 9+的启动参数(若无法切换Java版本)

如果必须使用Java 9及以上版本,修改Cassandra的JVM启动参数:

  • 打开Cassandra安装目录下的conf\jvm.options文件
  • 添加以下参数到文件开头:
    --add-exports=java.base/sun.nio.ch=ALL-UNNAMED
    --add-exports=java.rmi/sun.rmi.registry=ALL-UNNAMED
    --add-opens=java.base/java.nio=ALL-UNNAMED
    --add-opens=java.base/java.lang=ALL-UNNAMED
    
  • 保存后重启Cassandra服务

3. 验证Cassandra版本兼容性

  • 确认Cassandra版本与Java版本匹配:
    • Cassandra 3.11.x及更早:仅支持Java 8
    • Cassandra 4.0+:支持Java 8、11(部分子版本支持Java 17)
  • 若版本不匹配,升级Cassandra到对应Java版本兼容的版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:55:26