运行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”在内的完整软件包