जावा प्राप्त करना।


188

मैं वसंत के सरल डिपेंडेंसी इंजेक्शन कार्यक्रम को अंजाम दे रहा हूं और यह अपवाद हो रहा है। मैंने पहले ही कॉमन-लॉगिंग 1.1.1.jar और spring.jar फ़ाइल शामिल कर ली है। क्या आप कृपया मदद कर सकते हैं?

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:119)
    at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:55)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:56)
    at com.client.StoryReader.main(StoryReader.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 6 more

2
सबसे पहले, दोहराएं कि आपका क्लासपैथ वास्तव में सही है। दूसरा, जार खोलने की कोशिश करें और जांच लें कि इसमें वास्तव में org.apache.commons.logging.LogFactory वर्ग है। अंत में, क्लास लोडर में एक ब्रेकपॉइंट सेट करके डीबगिंग का प्रयास करें।
कोलीबरी

2
नीचे दिए गए सभी उत्तर commons-loggingएक कदम पीछे की ओर हैं। jcl-over-slf4jइसके बजाय उपयोग करें ।
25:05

Android में testCompile के 'कॉमन्स-लॉगिंग: कॉमन्स-लॉगिंग: 1.1.1' को app.gradle
रोजर

जवाबों:


118

मैं भी एक ही मुद्दों का सामना करना पड़ा है, ठीक करने के लिए, नीचे दिए गए यूआरएल से जार फ़ाइलों को डाउनलोड करें

http://commons.apache.org/logging/download_logging.cgi

और अपने लिबास फ़ोल्डर में कॉपी करें, आपकी समस्या का समाधान करेगा।


2
यह मेरे लिए काम नहीं करता है, यहां तक ​​कि उपर्युक्त कॉमन्स जार को क्लासपाथ में जोड़ने के बाद भी
दीन जॉन

2
न ही मेरे लिए। ये परिवाद टूटे हैं। यह बहुत निराशाजनक है।
वेसोस डे कुएसो

113

यदि आप निर्भरता के प्रबंधन के लिए मावेन का उपयोग कर रहे हैं, तो अपने pom.xml में निम्न पंक्ति जोड़ें:

<dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
</dependency>


19

commons-logging-1.1.1.jar या jcl-over-slf4j-1.7.6.jar अल

यदि आप मावेन का उपयोग कर रहे हैं, तो नीचे दिए गए कोड का उपयोग करें।

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>${slf4j.version}</version>
</dependency>

2
"Jcl-over-slf4j" को शामिल करना एकमात्र समाधान था जो मेरे लिए काम करता है। मेरे पास पहले से ही मेरी निर्भरता में कॉमन्स-लॉगिंग था।
इटालो बोरसैटो

मैं स्प्रिंग-बूट संस्करण 2.0.1 का उपयोग कर रहा हूं। कृपया मावेन के साथ। यह एकमात्र समाधान था जो मेरे लिए भी काम करता था।
कार्लोस

18

मुझे भी यही समस्या थी, और इसे सिर्फ commons-logging.jarक्लास के रास्ते से जोड़कर हल किया ।



6

मैंने पहले ही कॉमन-लॉगिंग 1.1.1.jar और ... शामिल कर लिया है

क्या आप सुनिश्चित हैं कि आपने JAR फ़ाइल का नाम बिल्कुल सही लिखा है? मुझे लगता है कि यह शायद होना चाहिए commons-logging-1.1.1.jar( -नाम में अतिरिक्त ध्यान दें )। यह भी जांच लें कि निर्देशिका नाम सही है या नहीं।

NoClassDefFoundError हमेशा मतलब है कि एक वर्ग नहीं मिल सकता है, इसलिए सबसे अधिक संभावना है कि आपका वर्ग पथ सही नहीं है।


2
NoClassDefFoundErrorअन्य कोने के मामलों के कारण भी हो सकता है, जैसे कि कक्षा के शुरुआती लोग अस्पष्ट परिस्थितियों में विफल हो जाते हैं।
स्केफमैन

इसके अलावा, अगर उसे NoClassDefFoundError मिल जाती है क्योंकि क्लास का इंस्टेंटेशन फेल हो गया है, तो उसे पहले अपवाद (InInitializerError) अपवाद मिलना चाहिए (जब तक कि यह चुपचाप नहीं पकड़ा गया)।
कोलिब्री

और "s"commons-logging-1.1.1.jar
ग्लेन लॉरेंस

@GlennLawrence धन्यवाद, नाम तय किया।
जेस्पर

6

संकलन करने की गुंजाइश सेट करना मेरे लिए था

<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.2</version>
  <scope>compile</scope>
</dependency>

1
मेरी स्थिति को हल किया। मॉकिटो परीक्षण मामलों को चलाते समय, मुझे यह त्रुटि मिली और pom.xml में यह निर्भरता हल हो गई।
वेणुगोपाल

4

किसी भी बासी लाइब्रेरी जार से छुटकारा पाने के लिए ऐप के लिए लक्ष्य / तैनाती निर्देशिका की पूरी तरह से सफाई करने का प्रयास करें। एक नया निर्माण करें और जांचें कि commons-logging.jar वास्तव में सही काम के फ़ोल्डर में रखा जा रहा है। जब आप आवेदन के लिए पुस्तकालय का निर्माण कर रहे हैं तो यह शामिल नहीं हो सकता है।


4

कॉमन्स-लॉगिंग.जर जोड़कर समस्या हल की गई

छोटी फाइलें हैं,

antlr-runtime-3.0.1

org.springframework.aop-3.1.0.M2

org.springframework.asm-3.1.0.M2

org.springframework.aspects-3.1.0.M2

org.springframework.beans-3.1.0.M2

org.springframework.context.support-3.1.0.M2

org.springframework.context-3.1.0.M2

org.springframework.core-3.1.0.M2

org.springframework.expression-3.1.0.M2

commons-logging-1.1.1

3

दो विकल्प (कम से कम):

  1. एक स्थानीय फ़ोल्डर में कॉपी करके अपनी फ़ाइल में कॉमन-लॉगिंग जार जोड़ें।

नोट: जार को जोड़ने से सर्वर के साथ समस्याएं हो सकती हैं और शायद यही वजह है कि इसे बिल्ड पथ में जोड़ा गया है, लेकिन सर्वर स्टार्टअप समस्या को हल नहीं कर रहा है।

तो जार को बाहरी फ़ोल्डर में न रखें।

या ...

  1. यदि आप वास्तव में इसे स्थानीय रूप से जोड़ना नहीं चाहते हैं क्योंकि आप परियोजनाओं के बीच जार साझा कर रहे हैं, तो ...

यदि आप एक tc सर्वर इंस्टेंस का उपयोग कर रहे हैं, तो आपको सर्वर बाहरी रन कॉन्फ़िगरेशन के लिए जार को बाहरी जार के रूप में जोड़ना होगा।

के रूप में चलाने के लिए जाना, विन्यास को चलाने ..., {अपने टीसी सर्वर उदाहरण}, और फिर कक्षा पथ टैब।

फिर कॉमन्स-लॉगिंग जार जोड़ें।


3

मुझे आपसे भी वही परेशानी हुई। अंत में मैंने कक्षा के पास अपाचे के संस्करण की जाँच की। मैंने पाया कि संस्करण 1.0.4 में कक्षा है।

संस्करण 1.1.X या 1.2.X के बजाय 1.0.4 का उपयोग करने का प्रयास करें

मेरी निर्भरता:

    <dependencies>
        <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-core</artifactId>
            <version>1.3.5</version>
        </dependency>
        <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-client-java</artifactId>
            <version>1.3.5</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.0.4</version>
        </dependency>
    </dependencies>

मेरा जावा कोड

J4pClient j4pClient = new J4pClient("http://localhost:8080/jolokia");
J4pReadRequest req = new J4pReadRequest("java.lang:type=Memory","HeapMemoryUsage");
req.setPath("used");
J4pReadResponse resp = j4pClient.execute(req);
System.out.println(resp.getValue());

मेरा परिणाम:

130489168

डबल चेक यह भी कि आपके मावेन निर्भरता को अच्छी तरह से आयात किया गया है।



0

बस जाँच करें कि क्या कॉमन्स-लॉगिंग.जर आपकी लिबास और क्लासपाथ में जोड़ा गया है .. मेरे पास एक ही मुद्दा था और इस वजह से था। dhammikas-


0

मैं आमतौर पर क्लासपैथ को एक चर में असाइन करता हूं और फिर इसे सत्यापित करता हूं। मैंने एक छोटी रूबी स्क्रिप्ट लिखी है, जिसे मैं अपनी स्टार्टअप स्क्रिप्ट में शामिल करता हूं जो जावा लॉन्च करने से पहले क्लासपाथ को मान्य करता है । जेवीएम शुरू होने से पहले क्लासपाथ को मान्य करने से मुझे इस प्रकार की समस्याओं का निवारण करने में बहुत समय बचा है।


2
आपको इसके बजाय मावेन जैसे उपकरणों का उपयोग करने पर विचार करना चाहिए।
नवविवाहित

0

अरे मैं tutorialpoint.com पर ट्यूटोरियल का अनुसरण कर रहा था। चरण 2 पूर्ण करने के बाद जोड़ें - अपाचे कॉमन लॉगिंग एपीआई स्थापित करें: आपको इस चरण में डाउनलोड की गई फ़ाइलों से परियोजना के लिए बाहरी जार लाइब्रेरीज़ को आयात करना होगा । मेरे लिए फ़ाइल का नाम " कॉमन्स-लॉगिंग-1.1.1 " था।


0

यदि आप इसे एंड्रॉइड पर चला रहे हैं तो ध्यान दें कि जाहिरा तौर पर java.beansपैकेज एंड्रॉइड पर पूरा नहीं है। Android पर इसे ठीक करने का प्रयास करने के लिए निम्नलिखित प्रयास करें:

  1. डाउनलोड android-जावा-एयर bridge.jar (वर्तमान में डाउनलोड बटन पर पेज या के तल पर है यहाँ सीधा लिंक )
  2. डाउनलोड किए गए जार को अपने [APPROOT] / ऐप / लिबास डायरेक्टरी में कॉपी करें (या किसी अन्य तरीके से जार लिंक करें)
  3. import ***एयर-ब्रिज के बयान बदलें । के import javadz.beanutils.BeanUtilsबजायimport org.apache.commons.beanutils.BeanUtils;
  4. प्रोजेक्ट को साफ और पुनर्निर्माण करें

स्रोत 1 , स्रोत 2

मैं माफी माँगता हूँ क्योंकि मुझे एहसास है कि यह सवाल का सही जवाब नहीं दे रहा है, हालांकि यह एसओ पृष्ठ एंड्रॉइड-जनित NoClassDefFoundError: Failed resolution of: beanUtilsत्रुटियों की खोज करते समय बहुत ऊपर आता है ।


0

जार में मौजूद होने के दौरान मुझे वही त्रुटि मिल रही थी। कोई उपाय काम नहीं आया। क्या काम किया फ़ाइल सिस्टम से जार को हटा रहा था (.m2 निर्देशिका से) और फिर मावेन प्रोजेक्ट को साफ करना।


0

मुझे ग्रहण आईडीई में एक ही समस्या है, मेरा समाधान था: मेरी परियोजना में राइट क्लिक > गुण

यहां छवि विवरण दर्ज करें

मावेन में क्लिक करें और सक्रिय मावेन परियोजना में जार लिखें

यहां छवि विवरण दर्ज करें

अंत में, लागू करें और बंद करें


0

मेरे मामले में मैं ग्रहण में एक टॉमकैट ऐप का परीक्षण कर रहा था और मुझे यह त्रुटि मिली। मैंने इसे .classpathफ़ाइल की जाँच करके हल किया और इस प्रविष्टि को सही किया:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>

विशेषता org.eclipse.jst.component.dependencyगायब थी।


-1

जांचें कि क्या जार ठीक से आयात किए गए हैं। मैंने उन्हें निर्मित पथ का उपयोग करके आयात किया। लेकिन यह WAR / lib फ़ोल्डर में जार को नहीं पहचानता था। बाद में, मैंने उसी जार को युद्ध / परिवाद फ़ोल्डर में कॉपी किया । यह अब ठीक काम करता है। आप अपने प्रोजेक्ट को रिफ्रेश / क्लीन कर सकते हैं।


-2

नमस्कार दोस्तों अगर आपके किसी भी वर्ग को हाइबरनेट कोड में अपवाद नहीं मिला है तो यह jar files की समस्या है। मुख्य रूप से दो समस्याएं
मेरा कहना है कि हाइबरनेट के आपके पुराने वर्जन का वर्जन 3.2 bellow हो सकता है। यदि यू 3.6 से ऊपर की कोशिश करता है तो ठीक काम करता है

2.फर्स्ट डेटाबेस कनेक्शन की जाँच करता है। यदि यह ठीक से काम कर रहा है तो डेटाबेस उर प्रोग्राम या जार फाइल में गलती थी।

कृपया इन दो पुजारियों की जाँच करें अगर यह भी काम नहीं कर रहा है तो आपने आईडीई की कोशिश की। मैं netbeanside 6.9 वर्जन का उपयोग कर रहा हूं। हाइबरनेट ठीक काम कर रहा है। फिर भी आपको क्लास से कोई त्रुटि नहीं मिलती है।

मुझे उम्मीद है कि यह एक और मदद करता है


-2

समाधान आम लॉगिंग .xx जार फ़ाइल को जोड़ना है


-2

इस निर्भरता को जोड़ने का प्रयास करें। org.apache.commons कॉमन्स-निष्पादन 1.3


-3

अगर बाकी सब विफल हो जाता है, जैसा कि मेरे लिए था, तो कॉमिक्स-लॉगिंग-ज़ीज़र को अपनी टॉमकैट लिबरल डायरेक्टरी में डालने की कोशिश करें। इसने समस्या हल कर दी! BTW, मैं टॉमकैट 6 का उपयोग कर रहा हूं।


नाम की बात? तुम किस बारे में बात कर रहे हो?
बॉब वी।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.