简体   繁体   English

解析Java中的JSON时出错:ClassNotFoundException

[英]Error parsing JSON in Java: ClassNotFoundException

I'm trying to parse a bit of JSON in Java by following this tutorial . 我试图通过遵循本教程来解析Java中的JSON。 Because it mentions nothing about org.apache.commons.io.IOUtils other than it imports it, I figured all it was used for it to convert an InputStream into a String. 因为除了导入它之外,它什么也没有提到org.apache.commons.io.IOUtils ,所以我发现它全部用于将InputStream转换为String. I have my own code for that, so I omitted it. 我有自己的代码,因此省略了。 Here is my code: 这是我的代码:

import java.io.*;
import java.io.InputStream;
import java.net.*;
import java.util.Scanner;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;

public class Net {
    static String returnParsedIp() throws UnsupportedEncodingException,    MalformedURLException, IOException {
    String url = "http://httpbin.org/ip";
    URLConnection connection = new URL(url).openConnection();
    connection.setRequestProperty("Accept-Charset", "UTF-8");
    InputStream response = connection.getInputStream();
    String responseString = new Scanner(response,"UTF-8").useDelimiter("\\A").next();
    //return responseString;

    JSONObject json = (JSONObject) JSONSerializer.toJSON(responseString);
    String Ip = json.getString("origin");

    return Ip;
}
}

I then call the method from my main class with: 然后,我从主类中调用方法:

public class DDNS {

    public static void main(String[] args) throws Exception {
        String Ip = Net.returnParsedIp();
        System.out.println(Ip);
    }   
}

However, it throws the following error: 但是,它引发以下错误:

run:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    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:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at ddns.Net.returnParsedIp(Net.java:19)
    at ddns.DDNS.main(DDNS.java:6)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
    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:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 14 more
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

Any help is appreciated. 任何帮助表示赞赏。

Either you don't have the Apache Commons lang and io JARs in your CLASSPATH or you have the wrong version. 您的CLASSPATH中没有Apache Commons lang和io JAR,或者版本错误。

Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException

This is Java 101. You need all the dependencies in the CLASSPATH in order to compile and run. 这是Java101。您需要CLASSPATH中的所有依赖项才能进行编译和运行。

您必须在您的项目中添加commons-lang jar

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM