2011-01-16 13 views
7

पढ़ना मैं जावा के साथ JSON फ़ाइल पढ़ने की कोशिश करता हूं। कोड है:JSON फ़ाइल त्रुटि

public static void main(String[] args) throws Exception { 
    InputStream is = new FileInputStream("j.txt"); 
    String jsonTxt = IOUtils.toString(is); 

    JSONObject json = (JSONObject) JSONSerializer.toJSON(jsonTxt); 

    JSONObject routes = json.getJSONObject("routes"); 
    JSONObject legs = routes.getJSONObject("legs"); 
    JSONObject distance = legs.getJSONObject("distance"); 
    String dist = distance.getString("text"); 
} 

और लाइन JSONObject json = (JSONObject) JSONSerializer.toJSON(jsonTxt); एक त्रुटि बनाता है:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    at antmedic.algorithm.SimpleParser.main(SimpleParser.java:24) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    ... 13 more 
Java Result: 1 

मैं इस समस्या को हल करने के लिए आभारी होंगे।

+0

के लिए समस्या हल हो जाती अपने classpath सही नहीं है। – Pointy

उत्तर

5

लगता है कि आपने आप वर्ग पथ

+0

इस समस्या को हल करने के लिए कैसे? मैं विंडोज – Devel

+0

में नेटबीन का उपयोग करता हूं यह एक अस्पष्ट सवाल है क्योंकि मुझे यकीन नहीं है कि आपने अपनी परियोजना कैसे स्थापित की है। लेकिन यह सिर्फ एक साधारण जावा प्रोजेक्ट मानते हुए, गायब जार फ़ाइल को ऑनलाइन देखें और फिर इसे नेटबीन्स में अपने क्लास पथ में जोड़ें। मैं netbeans का उपयोग नहीं करता है तो शायद कोई और आपकी मदद कर सकता है। –

+1

मुझे लगता है कि मैंने पहले से ही यह किया है - मैंने अपनी परियोजना में लाइब्रेरी के रूप में फ़ाइल कॉमन्स-io-2.0.1.jar जोड़ा है। क्या मुझे कुछ और जोड़ना है? – Devel

1

आप कुछ जार निर्भरता जो org.apache.commons.lang.exception.NestableRuntimeExceptio वर्ग में शामिल है याद कर रहे हैं में Apache Commons जार फ़ाइल नहीं है। इंटरनेट पर देखो, जहां इस वर्ग खोजने के लिए और अपने classpath में इस जार जोड़ने

12

कॉमन्स लैंग का नवीनतम संस्करण (इस मामले अपाचे आम लैंग में) से (वर्तमान में 3.1) org.apache.commons.lang3 बजाय org.apache.commons.lang के पैकेज के नाम है। बाद के पैकेज नाम (आपके मामले में) के लिए, आपको कॉमन्स लैंग के 2.6 संस्करण डाउनलोड करना चाहिए।

+0

धन्यवाद। मैं नवीनतम संस्करण का उपयोग कर रहा था यानी 3.1 और यह त्रुटि –

+0

+1 ग्रेट हो रही थी, मैं 3.1 के साथ कोशिश कर रहा था और एक ही त्रुटि प्राप्त कर रहा था। इस महान जवाब के लिए धन्यवाद। – user75ponic

0

आप इसके साथ अपने maven pom.xml फ़ाइल को अपडेट कर सकते हैं। मुझे इसे डाउनलोड करने के लिए संस्करण के लिए 2.3 निर्दिष्ट करना था।

<dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.3</version> 
    </dependency> 
संबंधित मुद्दे