NoClassDefFoundError при использовании Java-выражения leveldb

Для тех, кому удалось использовать эту Java-реализацию leveldb https://github.com/dain/leveldb/

Я получаю следующую трассировку стека, когда я пытаюсь выполнить код в readme:

NoClassDefFoundError возникает при запуске следующей строки:

DB db = factory.open (новый файл ("пример"), параметры);

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") возвращает ненулевое значение; такой же как переменная options

Я импортирую два файла jar, созданные из источника, в мою библиотеку:

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

Я пробовал это с выпусками 0.6, 0.7 и 0.8-SNAPSHOT и всегда получал одну и ту же ошибку.

Это может быть что-то, что я делаю неправильно... или отсутствует?

1 ответ

com.google.common.collect.util От guava есть зависимость от библиотеки leveldb, но по какой-то причине ее явное добавление в качестве зависимости для моего java-проекта решило проблему.

Другие вопросы по тегам