2011-01-16 19 views
7

Intento leer el archivo JSON con Java. El código es:Lectura del error del archivo 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"); 
} 

Y la línea JSONObject json = (JSONObject) JSONSerializer.toJSON(jsonTxt); comete un error:

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 

Le agradecería que para resolver este problema.

+0

la ruta de clases es incorrecta. – Pointy

Respuesta

5

Parece que no tiene apache commons archivo jar en que la ruta de clase

+0

¿Cómo resolver este problema? Uso NetBeans en Windows – Devel

+0

Esa es una pregunta vaga porque no estoy seguro de cómo ha configurado su proyecto. Pero asumiendo que es solo un simple proyecto de Java, busque el archivo jar que falta en línea y luego agréguelo a su ruta de clase en netbeans. No uso netbeans así que tal vez alguien más pueda ayudarte. –

+1

Creo que ya lo hice. He agregado el archivo commons-io-2.0.1.jar como biblioteca a mi proyecto. ¿Debo agregar algo más? – Devel

1

Le falta alguna dependencia frasco que contiene la clase org.apache.commons.lang.exception.NestableRuntimeExceptio. Busque en Internet dónde encontrar esta clase y agregue este jar en su classpath (en este caso Apache Common Lang)

12

La última versión de Commons Lang (actualmente 3.1) tiene el nombre de paquete org.apache.commons.lang3 en lugar de org.apache.commons.lang. Para el nombre del paquete posterior (como en su caso), debe descargar la versión 2.6 de Commons Lang.

+0

Gracias. Estaba usando la versión más reciente, es decir, 3.1 y obtenía este error –

+0

+1 Genial, estaba intentando con 3.1 y obteniendo el mismo error. Gracias por esta gran respuesta. – user75ponic

0

Puede actualizar su archivo maven pom.xml con esto. Tuve que especificar 2.3 para la versión para que se descargue.

<dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.3</version> 
    </dependency> 
Cuestiones relacionadas