2009-08-12 8 views
6

के साथ ClassNotFoundException नीचे दिया गया कोड Guice 2.0 का उपयोग करके एक त्रुटि उत्पन्न करता है। Guice 1.0 के साथ सबकुछ ठीक है।Guice 2.0

Exception in thread "main" java.lang.NoClassDefFoundError: [Lorg/aopalliance/intercept/MethodInterceptor; 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) 
    at java.lang.Class.getDeclaredMethods(Class.java:1791) 
    at com.google.inject.internal.ProviderMethodsModule.getProviderMethods(ProviderMethodsModule.java:78) 
    at com.google.inject.internal.ProviderMethodsModule.configure(ProviderMethodsModule.java:70) 
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223) 
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:232) 
    at com.google.inject.spi.Elements.getElements(Elements.java:101) 
    at com.google.inject.InjectorShell$Builder.build(InjectorShell.java:135) 
    at com.google.inject.InjectorBuilder.build(InjectorBuilder.java:102) 
    at com.google.inject.Guice.createInjector(Guice.java:92) 
    at com.google.inject.Guice.createInjector(Guice.java:69) 
    at com.google.inject.Guice.createInjector(Guice.java:59) 
    at App.main(App.java:6) 
Caused by: java.lang.ClassNotFoundException: org.aopalliance.intercept.MethodInterceptor 
    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) 
    ... 14 more 

क्या समस्या हो सकती है: JDK 15.

public class App { 
    public static void main(String[] args) { 
     Guice.createInjector(new AbstractModule() { 
      @Override 
      protected void configure() { 
       // just testing 
      } 
     }); 
    } 
} 

त्रुटि है जावा 6 अद्यतन है?

उत्तर

11

क्लासपाथ में कक्षा org.aopalliance.intercept.MethodInterceptor के साथ dependency jar शामिल करने से चूक गए हैं।

+0

RTFM के विशिष्ट मामले मुझे लगता है। धन्यवाद!! –

6

Boris Pavlović के रूप में उल्लेख है उसके जवाब में है, तो आप एक जार वंचित रह जाएंगे। विशेष रूप से aopalliance.jar फ़ाइल, जो कि GUICE zip file

वैकल्पिक रूप से, आप guice-2.0-no_aop.jar का उपयोग करने का प्रयास कर सकते हैं, लेकिन मुझे यकीन नहीं है कि यह काम करेगा या नहीं।

classpath को यह फ़ाइल जोड़ना जो उपकरण आपको अपने जावा कोड को चलाने के लिए उपयोग करने पर निर्भर करता है।

  • आप कमांड लाइन से जावा चला रहे हैं:
windows: java -cp aopalliance.jar;guice-2.0.jar;other_jars.jar YourMainClass 
*nix: java -cp aopalliance.jar:guice-2.0.jar:other_jars.jar YourMainClass 
  • आप ग्रहण से जावा चला रहे हैं, आम तौर पर आप lib किसी प्रकार होगा/निर्देशिका। अपने जार वहाँ रखो, तो जार पर राइट क्लिक करें -> पथ का निर्माण -> पथ का निर्माण करने के लिए
1

मैं कल इस समस्या में पड़ जोड़ें, निर्भरता, Maven द्वारा किया जाता है तो aopalliance.jar है बिना किसी संदेह के कक्षा में। संस्करण 6.1.10 6.1.26 से

अद्यतन घाट समस्या तय।

यहाँ वास्तविक समस्या कंटेनर aopalliance.jar का समर्थन नहीं करता है। मुझे उम्मीद है कि किसी को सख्त समाधान की तलाश करने में मदद मिलेगी।

+0

मैं 6.1.26 का उपयोग कर रहा हूं और अभी भी समस्या प्राप्त कर रहा हूं :( – ndtreviv

0

मैं आज इस समस्या में पड़। असल में टॉमकैट कक्षा को अपनी मुक्ति में नहीं ढूंढ सकता है। तो बस टोपीकैट में lib फ़ोल्डर में aopalliance.jar की प्रतिलिपि बनाएँ, यह पर्याप्त है।

-2

नीचे जार जोड़ा जा रहा है मेरे लिए ठीक काम करता है।
javax.inject.jar
guice-3.0-no_aop.jar