Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NoClassDefFoundError:javax/json/json无maven或IDE_Java_Json_Javax.json - Fatal编程技术网

NoClassDefFoundError:javax/json/json无maven或IDE

NoClassDefFoundError:javax/json/json无maven或IDE,java,json,javax.json,Java,Json,Javax.json,我正在尝试一个简单的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){

我正在尝试一个简单的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上…

谢谢你的帮助!为什么我在运行时也必须包含jar文件呢?答案:1)因为文档这么说。2) 因为
javac
编译器没有将依赖JAR或其路径名嵌入到“.class”文件中。3) 因为Java没有C#的应用程序清单文件的直接等价物。请在类路径中添加json jar