RocksDB Java是否支持ARM

时间:2018-04-05 04:43:50

标签: java maven arm rocksdb

我正在研究我的大学项目,并使用最新版本的RocksDB和Maven来存储我的键值数据:

<dependency>
  <groupId>org.rocksdb</groupId> 
  <artifactId>rocksdbjni</artifactId> 
  <version>5.5.1</version> 
</dependency>

。它在我的机器上运行良好但是当我尝试在我的Raspberry Pi 2上运行它时,我收到一个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/librocksdbjni5424421652341245125.so: /tmp/librocksdbjni5424421652341245125.so: cannot open shared object file: No such file or directory (Possible cause: can't load IA 32-bit .so on a ARM-bit platform)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1821)
    at java.lang.Runtime.load0(Runtime.java:809)
    at java.lang.System.load(System.java:1086)
    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 Main.main(Main.java:39)

这意味着,RocksJava不支持ARM平台?如果不是我可以在我的Maven项目中使用哪些替代品? (我试图使用这个lib,但它有许多错误和未实现的方法:https://github.com/dain/leveldb

1 个答案:

答案 0 :(得分:0)

RocksDB是用C ++编写的,意思是本机代码。从https://github.com/facebook/rocksdb/blob/master/INSTALL.md开始,它似乎非常便携,并且应该相对容易安装在Raspbian(这是Debian Linux)上。然后你的Java模块可能会工作。

否则找到另一个用Java编写的键值存储或学习JDBC并使用数据库。 Derby是用Java编写的。