Невозможно отладить java.lang.NoClassDefFoundError: com/google/inject/internal/util/$ Предварительные условия

Я пытаюсь сделать апплет для загрузки файлов в openstack swift с использованием jclouds. И я сталкиваюсь с 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 уже есть в моем проекте. Как тогда отладить? любая помощь..???

3 ответа

Я предлагаю распечатать то, что находится на вашем classpath из вашего приложения (см. Этот ответ). Таким образом, вы будете точно знать, какой classpath использует ваше приложение, если что-то пропущено или есть какие-либо коллизии.

Проблема решена сейчас. Это была ошибка между guice 3.0 и guice-3.0.0, потому что у обоих одинаковый идентификатор артефакта maven, но идентификатор группы был другим.

введите описание изображения здесь

Откройте свойство вашего проекта и добавьте библиотеку зависимостей.

Другие вопросы по тегам