繁体   English   中英

使用LevelDB的Java Impl时出现NoClassDefFoundError

[英]NoClassDefFoundError when using java impl of leveldb

对于那些设法使用leveldb的java实现的人https://github.com/dain/leveldb/

尝试执行自述文件中的代码时,出现以下堆栈跟踪信息:

运行以下行时,发生NoClassDefFoundError:

DB db = factory.open(new File(“ example”),options);

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Lists
at org.iq80.leveldb.impl.DbImpl.(DbImpl.java:95)
at org.iq80.leveldb.impl.Iq80DBFactory.open(Iq80DBFactory.java:59)
at com.test.LevelDBDain.main(LevelDBDain.java:23)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Lists
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

我确认new File("example")返回一个非null值; 与变量options相同

我将从源代码构建的两个jar导入到我的库中:

1.leveldb-api.jar
2.leveldb.jar

我已经尝试过使用0.6、0.7和0.8-SNAPSHOT版本,并且总是得到相同的错误。

难道是我做错了什么...还是丢失了?

来自guava的 com.google.common.collect.util是leveldb库的依赖项,但由于某种原因,将其显式添加为我的Java项目的依赖项解决了该问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM