尽管在类路径中包含JSONreader ClassNotFoundException

时间:2020-07-06 18:03:12

标签: java json gson jsonreader

我正在尝试弄清楚如何使用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

0 个答案:

没有答案