jmqtt
jmqtt copied to clipboard
UnsatisfiedLinkError: librocksdbjni7773192078599615325.dll
When start a broker by IDE, it throws exception:
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\admin\AppData\Local\Temp\librocksdbjni7773192078599615325.dll: 拒绝访问。
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
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 org.rocksdb.DBOptions.<clinit>(DBOptions.java:21)
at org.jmqtt.store.rocksdb.db.RDB.<init>(RDB.java:19)
at org.jmqtt.store.rocksdb.RDBMqttStore.<init>(RDBMqttStore.java:15)
at org.jmqtt.broker.BrokerController.<init>(BrokerController.java:102)
at org.jmqtt.broker.BrokerStartup.start(BrokerStartup.java:63)
at org.jmqtt.broker.BrokerStartup.main(BrokerStartup.java:25)
只会在win10上出现,win8上正常运行。 请教了RocksDB作者,似乎也没有找到原因,并且发现RocksDB的issue里有大量类似的问题。 提交的issue:https://github.com/facebook/rocksdb/issues/5177 需要花时间排查原因。
在mac 10.11.6上也出现了这个问题,无法使用rocksdb作存储
原因并不是操作系统的不同,而是权限问题。RocksDB会把DLL释放到C盘的temp目录,如果发生这个问题,请检查自己是否具有对应目录的权限。 也麻烦 @lxh2002 判断下MAC是否也是权限问题,比如用Root去运行试一试,谢谢。