2011-12-05 14 views
1

私はthis例から働いていると私はプロジェクトにlog4jの、SLF4Jとbonecpを追加した後、このエラーに実行しています::例外のスレッドで「メイン」java.lang.NoClassDefFoundErrorのは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) 

答えて

3

BoneCP's requirements pageには、BoneCPとSLF4Jのほかに、Google Guavaを追加する必要があると記載されているため、追加する必要があります。 guava-*.jarをダウンロードし、SLF4JとBoneCPの場合と同じようにクラスパスに追加してください。

1

Javaプロセスを実行するときに、Javaプロセスのクラスパスにそれらのjarファイルを追加する必要があります。たとえば、

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

ここでは、Javaコマンドを実行するディレクトリにあるlibというディレクトリにjarがあることを前提としています。

+0

私は自分のプロジェクトのライブラリセクションに追加しましたか?それをクラスパスに追加しませんか? – davidahines

+1

また、巧妙な名前。 – davidahines

+1

あなたのIDEはビルドクラスパスにそれらを自動的に追加するかもしれません。 Javaの実行方法によっては、実行時のクラスパスにJavaを追加する必要があります。 – sudocode

関連する問題