尝试使用JSON简单解析JSON时的NoClassDefFoundError

ivk*_*knv 3 java json classnotfoundexception json-simple

我使用JSON简单来解析JSON,并NoClassDefFoundError在尝试创建JSONParser对象时得到.

import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.JSONParser;
...
JSONParser parser = new JSONParser();
Run Code Online (Sandbox Code Playgroud)

我用命令编译程序:

javac MyProgram.java -cp json-simple-1.1.1.jar
Run Code Online (Sandbox Code Playgroud)

它编译得很好.但是当我用这个命令执行程序时:

java MyProgram
Run Code Online (Sandbox Code Playgroud)

我明白了 NoClassDefFoundError

我究竟做错了什么?

编辑:
完整错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/parser/JSONParser
        at getNotesFromNoter.sendPost(getNotesFromNoter.java:53)
        at getNotesFromNoter.main(getNotesFromNoter.java:14)
Caused by: java.lang.ClassNotFoundException: org.json.simple.parser.JSONParser
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        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)
        ... 2 more
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

运行时,您没有在类路径中包含Simple JSON jar文件.你要:

// Unix
java -cp .:json-simple-1.1.1.jar MyProgram

// Windows
java -cp .;json-simple-1.1.1.jar MyProgram
Run Code Online (Sandbox Code Playgroud)

(:或者;是相关操作系统的路径分隔符.)

当你编译Java和指定一个类路径,这只是告诉编译器要编译的类反对 -它不包括在库结果编制的,所以你仍然需要指定类路径,以运行代码,太.