无法调试java.lang.NoClassDefFoundError:com / google / inject / internal / util / $ Preconditions

我正在尝试使用jclouds制作一个用于将文件上传到openstack swift的applet。 我正面临NoClassDefFoundError,以下是stacktrace:

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 

我用google搜索com/google/inject/internal/util/$Preconditions ,并且知道它是guice-3.0.jar的一部分。 但是guice-3.0.jar已经存在于我的项目中。 那怎么调试呢? 任何帮助.. ???

我建议从你的应用程序中打印出类路径中的内容(请参阅此答案 )。 这样你就可以准确地知道你的应用正在使用什么类路径,如果有什么遗漏或任何碰撞。

问题现在解决了。 这是guice 3.0和guice-3.0.0之间的一个错误,因为两者都有相同的maven artifact-id但是group-id是不同的。

在此处输入图像描述

打开项目的属性并添加依赖库。