JSONObject ClassNotFoundException
Asked Answered
G

4

18

I am working in IntelliJ and using Maven. I have a class that uses JSONObject:

import org.json.JSONObject;

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

Maven dependency in the pom.xml file:

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

I can do a mvn clean package and builds successfully. But when I try to run it, I get:

Error: java.lang.ClassNotFoundException: org.json.JSONObject

Is there anything else I'm missing here? Thanks!

Gurnard answered 11/4, 2013 at 14:11 Comment(3)
Did you checked that jar is in your classpath or in the war file ?Sacha
I have my project in intelliJ, and I run it using a bash script from the command line in linux.Gurnard
Alright, I got it--y'all were right, I didn't have it in my classpath. There were two variables set in the bash script: LIBJARS, the jars required by the job, and the CLASSPATH. I set it in the CLASSPATH, but in fact it was needed in the LIBJARS variable.... the joys of taking over others' code. :) Thanks for your help!Gurnard
H
39

Add json jar to your classpath

or use java -classpath json.jar ClassName

Or add this to your maven pom.xml depedencies:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20090211</version>
</dependency>
Hipparch answered 11/4, 2013 at 14:18 Comment(2)
Alright, I got it--y'all were right, I didn't have it in my classpath. There were two variables set in the bash script: LIBJARS, the jars required by the job, and the CLASSPATH. I set it in the CLASSPATH, but in fact it was needed in the LIBJARS variable.... the joys of taking over others' code. :) Thanks for your help!Gurnard
This is the latest dependency & it don't seems to have "import org.json.JSONObject;". Could you please guide ASAP? <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.3.1</version> </dependency>Milewski
S
10

As of today (15th July 2020), you need to use latest maven repository as per below:

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

For any new version in the future, you can check it here:

Then simply replace 20200518 with latest new version value.

Splayfoot answered 15/7, 2020 at 8:11 Comment(0)
K
5

Using the latest maven dependency solved the issue for me

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20171018</version>
</dependency>
Koenraad answered 24/1, 2018 at 10:20 Comment(0)
A
2

Originally I was using net.sf.json-lib but it was creating issues with JSONArray whenever I try to use .put() method

Following solved my issue:

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

Although I am not big fan of using LATEST but since its a numeric version number, instead of more understndable versioning, so I found this one working for me.

Asleyaslope answered 7/11, 2021 at 17:25 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.