1

I'm working from this example and I am running into this error after adding log4j, slf4j and bonecp to the project:

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)
davidahines
  • 3,976
  • 16
  • 53
  • 87

2 Answers2

3

In addition to BoneCP and SLF4J, you need to add Google Guava, because BoneCP's requirements page states that it needs to be present. Download guava-*.jar and add it to your classpath the same way you did with SLF4J and BoneCP.

Eli Acherkan
  • 6,401
  • 2
  • 27
  • 34
1

You will need to add those jars to the classpath of your Java process when you run it. For example,

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

This assumes that the jars are in a dir called lib which is in the directory you execute the Java command from.

ewan.chalmers
  • 16,145
  • 43
  • 60