我正在研究我的大学项目,并使用最新版本的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)
答案 0 :(得分:0)
RocksDB是用C ++编写的,意思是本机代码。从https://github.com/facebook/rocksdb/blob/master/INSTALL.md开始,它似乎非常便携,并且应该相对容易安装在Raspbian(这是Debian Linux)上。然后你的Java模块可能会工作。
否则找到另一个用Java编写的键值存储或学习JDBC并使用数据库。 Derby是用Java编写的。