我正在尝试弄清楚如何使用JSONreader软件包,我已经下载了gson-2.8.6.jar文件,并且正在使用命令:javac -classpath gson-2.8.6.jar Dummy.java
此命令工作正常,但是当我使用JSONreader执行文件时,出现此错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/stream/JsonReader
at Dummy.main(Dummy.java:14)
Caused by: java.lang.ClassNotFoundException: com.google.gson.stream.JsonReader
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
我的Dummy.java看起来像这样:
import java.net.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import com.google.gson.Gson;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
public class Dummy {
public static void main(String[] args){
String json = "{\"brand\" : \"Toyota\", \"doors\" : 5}";
JsonReader jsonReader = new JsonReader(new StringReader(json));
try {
while(jsonReader.hasNext()){
JsonToken nextToken = jsonReader.peek();
System.out.println(nextToken);
if(JsonToken.BEGIN_OBJECT.equals(nextToken)){
jsonReader.beginObject();
} else if(JsonToken.NAME.equals(nextToken)){
String name = jsonReader.nextName();
System.out.println(name);
} else if(JsonToken.STRING.equals(nextToken)){
String value = jsonReader.nextString();
System.out.println(value);
} else if(JsonToken.NUMBER.equals(nextToken)){
long value = jsonReader.nextLong();
System.out.println(value);
}
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("This is my first program in java");
System.out.println("Successful compilation");
}//End of main
}//End of FirstJavaProgram Classjav
我能获得一些为什么发生这种情况的指示吗?我正在使用`java Dummy'运行。如果这含糊不清,请告诉我,我可以进一步阐述,尽管JsonReader是gson-2.8.6.jar文件中的有效软件包,但似乎似乎无法理解为什么它说noClassDefFound:https://javadoc.io/doc/com.google.code.gson/gson/latest/com.google.gson/com/google/gson/stream/JsonReader.html