Как исправить: Исключение в потоке main java.lang.NoClassDefFoundError в BoneCP

Я работаю с этим примером и сталкиваюсь с этой ошибкой после добавления log4j, slf4j иbonecp к проекту:

run:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/FinalizableReferenceQueue
    at com.jolbox.bonecp.BoneCP.<init>(BoneCP.java:321)
    at javasampleapps.BoneCPExample.main(BoneCPExample.java:35)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.FinalizableReferenceQueue
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    ... 2 more
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)

person davidahines    schedule 05.12.2011    source источник


Ответы (2)


В дополнение к BoneCP и SLF4J необходимо добавить Google Guava, поскольку на странице требований BoneCP указано, что она должна присутствовать. Загрузите guava-*.jar и добавьте его в путь к классам так же, как вы делали с SLF4J и BoneCP.

person Eli Acherkan    schedule 05.12.2011

Вам нужно будет добавить эти jar-файлы в путь к классам вашего процесса Java при его запуске. Например,

java -classpath lib/log4j.jar;lib/slf4j.jar;lib/bonecp.jar [your_class]

Это предполагает, что банки находятся в каталоге с именем lib, который находится в каталоге, из которого вы выполняете команду Java.

person sudocode    schedule 05.12.2011
comment
Я добавил их в раздел библиотек моего проекта? Разве он не добавляет его в путь к классам при этом? - person davidahines; 05.12.2011
comment
Ваша среда IDE может автоматически добавлять их в путь к классам сборки. В зависимости от того, как вы выполняете Java, вам, возможно, придется добавить их в путь к классам среды выполнения самостоятельно. - person sudocode; 05.12.2011
comment
Это оказалась гуава, которую я не добавила. Спасибо. - person davidahines; 05.12.2011