java - 遇到 JSONreader ClassNotFoundException 尽管将它包含在类路径中
问题描述
我正在尝试弄清楚如何使用 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”运行。如果这是模糊的让我知道,我可以进一步详细说明,我似乎无法理解为什么它说 noClassDefFound 尽管 JsonReader 是 gson-2.8.6.jar 文件中的一个有效包,如所示:https ://javadoc.io/ doc/com.google.code.gson/gson/latest/com.google.gson/com/google/gson/stream/JsonReader.html
解决方案
推荐阅读
- logback - SLF4J LogBack - 多个记录器和附加器
- node.js - npm install json-server -g 不工作
- installshield - 如何在 InstallShield 2019 中检查服务器操作系统是否为 Windows Server 2019?
- python - TensorFlow 给出与 Keras 不同的预测
- firebase - 如何在 Firestore 上正确构建数据结构
- mysql - 应该在 where 子句中传递什么值以忽略它
- asp.net - 如何从托管在 iis 上的 Wappalyzer 隐藏 asp.net 技术?
- javascript - 我如何点击 iframe?
- python - 如何将列表中字符串中的每个单词转换为列表中的元素
- python-3.x - 将列类型“对象”转换为浮点数