RocksDB 在 macOS M 系列 上运行时报错的解决方案

问题现象

项目中引入可Kafka Stream ,Windows下启动不报错 ,但是在 macOS M系列 环境下就会报错,初步定位是使用 Java 项目调用 RocksDB 时,运行过程中出现以下报错:

  • UnsatisfiedLinkError: no rocksdbjni in java.library.path
  • 或者 librocksdbjni.dylib 无法被正确加载。
java 复制代码
Exception in thread "kafka-streams-app001-f566769f-d99b-45fa-9a5a-5ebf722fd601-StreamThread-1" java.lang.UnsatisfiedLinkError: Can't load library: /var/folders/qj/l1h4j0mj0bs56qd20d4sr3_40000gn/T/librocksdbjni13358465134412954828.jnilib
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2622)
	at java.base/java.lang.Runtime.load0(Runtime.java:765)
	at java.base/java.lang.System.load(System.java:1852)
	at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:78)
	at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:56)
	at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:64)
	at org.rocksdb.RocksDB.<clinit>(RocksDB.java:35)
	at org.rocksdb.DBOptions.<clinit>(DBOptions.java:21)
	at 

原因分析

  1. 缺少 JNI 动态库依赖 :RocksDB Java 依赖 rocksdbjni,需要正确的本地动态库(.dylib)文件。

  2. 依赖未引入 :Java 层需要 rocksdbjni 的 Maven 依赖

解决方案

  1. 添加 Java 依赖

    在项目的 pom.xml 中引入 RocksDB Java 依赖:

    xml 复制代码
    <dependency>
        <groupId>org.rocksdb</groupId>
        <artifactId>rocksdbjni</artifactId>
        <version>8.3.2</version> <!-- 请使用最新稳定版本 -->
    </dependency>

添加依赖之后 RocksDB 会以内嵌库的形式打包进应用,无需单独安装系统级 RocksDB。

总结

  • 必须引入 rocksdbjni 依赖,否则缺少 JNI 支持。

这样 macOS M系列 上即可成功运行 RocksDB。

相关推荐
weixin_5316708918 小时前
Interlude起来:久坐提醒软件为什么需要登录?有没有完全本地运行的Mac休息提醒软件?
人工智能·macos·swift
海兰21 小时前
【 Kafka进阶3】Apache Kafka 分布式事件流平台:架构原理与微服务解耦机制简要分析
分布式·架构·kafka
小白一枚131 天前
[学习笔记]Kafka 篇:从原理到实战的一站式指南
大数据·运维·elk·kafka·个人开发
阿里云云原生1 天前
还在给 AI “喂冷饭”?8.28 上海沙龙:带你跨越 AI 实时上下文鸿沟
云原生·kafka
海兰2 天前
【Kafka学习4】六大核心 API
学习·kafka·linq
weixin_531670892 天前
Interlude起来:Swift原生Mac软件有什么优势?原生Mac应用和Electron应用有什么区别?
人工智能·macos·mac·swift
k4m7v2pz2 天前
Swift Package Manager 在 macOS 26 上的三个编译错误排查指南
macos·spm·ai编程·xcode·swift·命令行工具
NJCloud2 天前
ELK企业级日志分析平台(四)——基于 ELFK + Kafka 的日志采集与传输平台部署实践
linux·运维·分布式·elk·kafka
zhonyu鱼2 天前
Pot 翻译:开源免费的跨平台划词翻译与 OCR 工具
windows·macos·开源·ocr·开源软件
杜子麟2 天前
Android studio模拟器离线安装
android·macos·android studio