1

我正在使用这个示例,在将 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)
4

2 回答 2

3

除了 BoneCP 和 SLF4J,您还需要添加Google Guava,因为BoneCP 的需求页面声明它需要存在。下载guava-*.jar并将其添加到您的类路径中,就像使用 SLF4J 和 BoneCP 一样。

于 2011-12-05T16:53:49.707 回答
1

运行 Java 进程时,您需要将这些 jar 添加到 Java 进程的类路径中。例如,

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

这假定 jar 位于一个名为 lib 的目录中,该目录位于您执行 Java 命令的目录中。

于 2011-12-05T16:20:47.947 回答