2013-04-11 136 views
6

我正在使用IntelliJ和使用maven。我有一個使用的JSONObject類,我已導入它JSONObject ClassNotFoundException

import org.json.JSONObject; 

和方法我用它像這樣:

JSONObject documentObj = null; 
    try { 
     documentObj = new JSONObject(document); 
    } catch (Exception e) { 
     throw new RuntimeException("Failed to convert JSON String document into a JSON Object.", e); 
    } 

我也有在pom.xml文件的依賴

<dependency> 
     <groupId>org.json</groupId> 
     <artifactId>json</artifactId> 
     <version>20090211</version> 
    </dependency> 

我可以「mvn clean package」這個代碼,一切都成功建立。但是當我嘗試運行它時,我得到「錯誤:java.lang.ClassNotFoundException:org.json.JSONObject」。

還有什麼我在這裏失蹤?

謝謝!

+1

你是否檢查過該jar是否在你的班級路徑還是在戰爭文件? – NullPointerException 2013-04-11 14:15:26

+0

我在intelliJ中有我的項目,我在linux中使用命令行中的bash腳本運行它。 – kimmii12 2013-04-17 20:33:16

+0

好吧,我明白了 - 你們都是對的,我沒有在我的班級路徑中。在bash腳本中設置了兩個變量:LIBJARS,作業所需的罐子和CLASSPATH。我將它設置在CLASSPATH中,但實際上它是在LIBJARS變量中需要的......接管其他代碼的樂趣。 :) 感謝您的幫助! – kimmii12 2013-04-17 20:53:03

回答

16

添加json jar到classpath

或使用java -classpath json.jar ClassName

或者添加到您的Maven的pom.xml depedencies:

<dependency> 
    <groupId>org.json</groupId> 
    <artifactId>json</artifactId> 
    <version>20090211</version> 
</dependency> 
+0

好吧,我明白了 - 你們都是對的,我沒有在我的班級路徑中。在bash腳本中設置了兩個變量:LIBJARS,作業所需的罐子和CLASSPATH。我將它設置在CLASSPATH中,但實際上它是在LIBJARS變量中需要的......接管其他代碼的樂趣。 :) 感謝您的幫助! – kimmii12 2013-04-17 20:53:52

+0

不客氣:) – 2013-04-18 09:17:37

+0

這是最新的依賴關係,它似乎沒有「import org.json.JSONObject;」。你能請指導儘快? \t com.google.code.gson \t GSON \t 2.3.1 Prateek 2015-05-01 11:09:16

0

採用最新的Maven依賴解決這個問題對我來說

<dependency> 
    <groupId>org.json</groupId> 
    <artifactId>json</artifactId> 
    <version>20171018</version> 
</dependency>