Java NoClassDefFoundError JSONObject

时间:2015-07-11 20:25:18

标签: java json

我从未使用过JSON,所以这是第一次。但我甚至无法让它正常工作。

import org.json.*; // get everything !

//method not even done yet... 
public static String getJSON( String jsonSource, String key ) {

    JSONObject obj = new JSONObject( jsonSource );
    return null;
}

这段小代码会抛出异常。编译它也给了我警告。

  

警告:json-20141113.jar(org / json / JSONObject.class):主要版本   52比新的主要版本51更新   编译器。建议升级编译器。

我正在使用此版本的java运行linux mint 17:

java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

这就是它不起作用的原因吗?

3 个答案:

答案 0 :(得分:1)

JDK 8 = 52,JDK 7 = 51,你使用的json - * .jar用JDK 8编译,你用JDK 7编译代码。

为JDK 7找到另一个版本的json或使用JDK 8编译代码。

顺便说一句,对于JSON,你应该看看Jackson

答案 1 :(得分:0)

您必须更新JDK。您的依赖项使用Java 8,并尝试使用JDK7编译代码。

答案 2 :(得分:0)

您正在使用的软件包已经为JDK 8编译。 见https://github.com/douglascrockford/JSON-java

幸运的是,代码中没有使用JDK 8功能。实际上,除了几个多捕获语句(JDK 7)之外,代码与JDK 5兼容。

我分叉了那个存储库 https://github.com/makeroo/JSON-java 并重新编译了JDK 5的代码(我的要求实际上是JDK 6,但我选择了最低代码要求)。