Reputation: 346
I am trying a simple json java program (no maven or IDE). This is my java file:
import javax.json.*;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.json.JsonWriter;
class JsonTest {
public static void main(String[] args){
JsonObject obj = Json.createObjectBuilder()
.add("name", "foo")
.add("num", new Integer(100))
.add("balance", new Double(1000.21))
.add("is_vip", new Boolean(true)).build();
System.out.print(obj);
}
}
In the same directory of this file, I have the jar file:
javax.json-1.0.jar
I don't get any error in compiling:
javac -classpath ./javax.json-1.0.jar JsonTest.java
But when I run the program I get the error:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/json/Json
at JsonTest.main(JsonTest.java:10)
Caused by: java.lang.ClassNotFoundException: javax.json.Json
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
Why am I getting this error when there was no error in compilation. I already searched other questions with this error but unlike them I am not using any IDE or maven. Any help will be appreciated.
Upvotes: 1
Views: 5592
Reputation: 718768
You are not running it with the JSON JAR file on the classpath.
Try this:
java -classpath .:./javax.json-1.0.jar JsonTest
Change :
to ;
on Windows ....
Upvotes: 1