java.lang.NoClassDefFoundError: javax/json/Json no maven or IDE

java.lang.NoClassDefFoundError: javax/json/Json no maven or IDE

我正在尝试一个简单的 json java 程序(没有 Maven 或 IDE)。 这是我的 java 文件:

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);
}
}

在这个文件的同一目录中,我有 jar 文件:

javax.json-1.0.jar

我在编译时没有遇到任何错误:

javac -classpath ./javax.json-1.0.jar JsonTest.java

但是当我 运行 程序时出现错误:

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    

编译没有错误,为什么会出现这个错误。我已经用这个错误搜索了其他问题,但与它们不同的是,我没有使用任何 IDE 或 maven。任何帮助将不胜感激。

你不是 运行 它与类路径上的 JSON JAR 文件。

试试这个:

java -classpath .:./javax.json-1.0.jar JsonTest

在 Windows 上将 : 更改为 ; ....