我正在使用this示例,我在将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)
答案 0 :(得分:3)
除了BoneCP和SLF4J之外,您还需要添加Google Guava,因为BoneCP's requirements page表示它需要存在。下载guava-*.jar
并将其添加到类路径中,方法与SLF4J和BoneCP相同。
答案 1 :(得分:1)
运行它时,您需要将这些jar添加到Java进程的类路径中。例如,
java -classpath lib/log4j.jar;lib/slf4j.jar;lib/bonecp.jar [your_class]
这假设jar位于名为lib的目录中,该目录位于执行Java命令的目录中。