0

jclouds を使用して openstack swift にファイルをアップロードするためのアプレットを作成しようとしています。そして、私は NoClassDefFoundError に直面しています。スタックトレースは次のとおりです。

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/inject/internal/util/$Preconditions
    at org.nnsoft.guice.rocoto.configuration.ConfigurationModule.configure(ConfigurationModule.java:64)
    at com.google.inject.AbstractModule.configure(AbstractModule.java:59)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223)
    at com.google.inject.spi.Elements.getElements(Elements.java:101)
    at com.google.inject.spi.Elements.getElements(Elements.java:92)
    at org.nnsoft.guice.rocoto.Rocoto.expandVariables(Rocoto.java:52)
    at org.nnsoft.guice.rocoto.Rocoto.expandVariables(Rocoto.java:47)
    at org.jclouds.config.BindPropertiesToExpandedValues.configure(BindPropertiesToExpandedValues.java:47)
    at com.google.inject.AbstractModule.configure(AbstractModule.java:59)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223)
    at com.google.inject.spi.Elements.getElements(Elements.java:101)
    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:133)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103)
    at com.google.inject.Guice.createInjector(Guice.java:95)
    at com.google.inject.Guice.createInjector(Guice.java:72)
    at com.google.inject.Guice.createInjector(Guice.java:62)
    at org.jclouds.ContextBuilder.expandProperties(ContextBuilder.java:385)
    at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:320)
    at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:620)
    at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:600)
    at com.cdac.appletclass.Test.main(Test.java:56)
Caused by: java.lang.ClassNotFoundException: com.google.inject.internal.util.$Preconditions
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 21 more

com/google/inject/internal/util/$Preconditionsググったところ、それが guice-3.0.jar の一部であることがわかりました。しかし、guice-3.0.jar は既に私のプロジェクトにあります。次にデバッグする方法は?何か助け..???

4

3 に答える 3

2

アプリ内からクラスパスにあるものを印刷することをお勧めします (この回答を参照してください)。そうすれば、アプリが使用しているクラスパスを正確に知ることができます。

于 2013-11-22T15:09:55.677 に答える