运行java类文件会导致NoClassDefFoundError
我有以下运行java类文件会导致NoClassDefFoundError,java,json,classpath,gson,Java,Json,Classpath,Gson,我有以下C:\Program Files\Java\jdk1.5.0\com\TestObjectToJson.Java文件: import com.google.gson.*; public class TestObjectToJson{ String state = "eBinn3+GQ0lnOjw46K1vsweIqsxAVKSV/QLlKRt6ClqGyBvOUMOHffa2/TogpKE6Qz7gsd7KwHz06XjJar9sjwvoZLizy3AQacDCUyax8uoN7
C:\Program Files\Java\jdk1.5.0\com\TestObjectToJson.Java
文件:
import com.google.gson.*;
public class TestObjectToJson{
String state = "eBinn3+GQ0lnOjw46K1vsweIqsxAVKSV/QLlKRt6ClqGyBvOUMOHffa2/TogpKE6Qz7gsd7KwHz06XjJar9sjwvoZLizy3AQacDCUyax8uoN79388QTw8LACcjAL00/sZ6AFp45IIuYZ2UXIUovZvjSN55yQc8ev7MrqFLzjiIuuCMLnK8bZwjO9viiji8C+Apnr034UoMklPprTGsbxpvOT97mJCBKXnQ+mBgH3x/2MLA3cfwPQMXZFyA1Hz5597Lx50G0AabMoqeLfddSYgxgbJULLtF2QYAIyG9qijwSktklW5AMY/vSi0FkRU7abayI3v++VYB7Hhc/Zhk3o3V/rdhpc9a9IF4qY28OqQNbFXo9XDpoz15FfKmJrqLMZmJfzrpzZmf5Wze2b6qpMUGtgwRN6WW+o2DCQRmA4EQ5g3zKhV+aTADbulnuVTOxUKYM4+uyPgwCdwwpyvfNk3c9gFeJPZ8ARBcuipbgH+8Om3e1wVz7qm5TxiQTN6tShPMxBFK8MNjqtjKmDKe1qOEttRqnLuRAsFtrASGQ/IO4XdM3574IN2w79cVO6jcpf1Tt2Aw==";
public static void main(String[] args) {
TestObjectToJson obj = new TestObjectToJson();
Gson gson = new Gson();
//convert java object to JSON format
String json = gson.toJson(obj);
System.out.println(json);
}
}
我已经下载了所需的Gson库(Gson-2.2.4.jar、Gson-2.2.4-javadoc.jar、Gson-2.2.4-sources.jar)
,并在
C:\Program Files\Java\jdk1.5.0\com:
我的类路径设置为:C:\ProgramFiles\Java\jdk1.5.0\com\gson-2.2.4.jar
我在C:\program Files\Java\jdk1.5.0\com\TestObjectToJson.Java中的程序使用上述类路径编译。但当我尝试运行时,它会告诉我:NoClassDefFoundError
如果我将类路径更改为:C:\ProgramFiles\Java\jdk1.5.0\com\
然后我无法编译程序:它给我:package com.google.gson不存在。
我做错了什么
以下是cmd的复制粘贴:
C:\Program Files\Java>cd C:\Program Files\Java\jdk1.5.0\com
C:\Program Files\Java\jdk1.5.0\com>set CLASSPATH=C:\Program Files\Java\jdk1.5.0\
com\gson-2.2.4.jar
C:\Program Files\Java\jdk1.5.0\com>javac -classpath "C:\Program Files\Java\jdk1.5.0
\com\gson-2.2.4.jar"
TestObjectToJson.java
C:\Program Files\Java\jdk1.5.0\com>java -classpath "C:\Program Files\Java\jdk1.5.0
\com\gson-2.2.4.jar" TestObjectToJson
线程“main”java.lang.NoClassDefFoundError中出现异常:TestObjectToJson
C:\Program Files\Java\jdk1.5.0\com>echo %CLASSPATH%
C:\Program Files\Java\jdk1.5.0\com\gson-2.2.4.jar
您还必须在运行时指定类路径
java -classpath "C:\Program Files\Java\jdk1.5.0\com\gson-2.2.4.jar" -jar "C:\Program Files\Java\jdk1.5.0\com\TestObjectToJson.java"
首先,您不必在程序文件文件夹中编写代码,这甚至是一种糟糕的做法,在更新Java时可能会造成麻烦
要指定类路径,需要编写如下内容:
java-classpath“;c:\mylib*”MyApp
因此,在你的情况下:
javac-classpath“;com\gson-2.2.4.jar”com\TestObjectToJson.java
C:\Program Files\Java\jdk1.5.0\com>java -classpath "C:\Program Files\Java\jdk1.5.0
\com\gson-2.2.4.jar" TestObjectToJson
java-classpath“;com\gson-2.2.4.jar”com.TestObjectToJson
C:\Program Files\Java\jdk1.5.0\com>echo %CLASSPATH%
C:\Program Files\Java\jdk1.5.0\com\gson-2.2.4.jar
您需要在C:\Program Files\Java\jdk1.5.0\上运行此命令
但请记住,不建议使用此位置
要了解有关java中CLANSATH的更多信息,请执行以下操作:
或者这个:
最后一件事,IMHO,使用Eclipse或Netbeans使依赖性问题变得更容易
更新后编辑:
C:\Program Files\Java>cd C:\Program Files\Java\jdk1.5.0
C:\Program Files\Java\jdk1.5.0>javac-classpath“C:\Program Files\Java\jdk1.5.0\com\gson-2.2.4.jar”com\TestObjectToJson.Java
C:\Program Files\Java\jdk1.5.0\com>java -classpath "C:\Program Files\Java\jdk1.5.0
\com\gson-2.2.4.jar" TestObjectToJson
C:\Program Files\Java\jdk1.5.0>Java-classpath“C:\Program Files\Java\jdk1.5.0\com\gson-2.2.4.jar”com.TestObjectToJson
C:\Program Files\Java\jdk1.5.0\com>echo %CLASSPATH%
C:\Program Files\Java\jdk1.5.0\com\gson-2.2.4.jar
发布完整的异常、消息和堆栈跟踪。我仍然收到相同的错误。因此,请编辑原始问题。调用java文件时,您的位置不合适。您位于“C:\Program Files\Java\jdk1.5.0\com\”您应该位于“C:\Program Files\Java\jdk1.5.0\”,您应该调用包括“com”在内的完整软件包