2

我已经与这个程序斗争了一段时间,无法弄清楚出了什么问题。任何帮助将不胜感激。

所以这就是问题所在。我有三个类,一个是用于登录 mysql 数据库,另一个是从数据库输出数据,最后一个是 main 方法。我在让他们编译时遇到了一个巨大的问题,因为在不同类中找不到方法的符号时出现错误。我终于通过使用命令让它们全部编译"javac -d bin/cdtPack src/CDT.java src/login.java src/ClientBase.java"

但是,现在当我尝试使用 main 方法运行该类时,出现错误:

线程“主”java.lang.noClassDefFoundError 中的异常:CDT(错误名称:cdtPack/CDT)

然后是在 java.... 的列表

有人知道可能出了什么问题吗?

4

3 回答 3

1

正如链接的问答所解释的那样,当您尝试使用错误的类名运行 Java 应用程序时会发生这种情况。

你的班级看起来像这样:

package cdtPack;
public class CDT {
    ....
}

这意味着它的类名是“cdtpack.CDT”。

但是您正在像这样运行它:

$ java CDT

JVM 告诉你:

“你告诉我运行 CDT,但当我查看它时,类说它的名称是“cdtpack.CDT”!!”

您必须了解 Java 类路径的工作方式,javac以及java所有其他 Java 工具查找类的方式。

您的“CDT.class”文件应该在名为“cdtpack”的目录中,然后“cdtpack”的目录应该在类路径中;IE

像这样编译:

$ javac -d bin -classpath bin src/cdtpack/CDT.java

这应该创建“bin/cdtpack/CDT.class”。然后像这样运行:

$ java -classpath bin cdtpack.CDT
于 2013-08-28T06:31:27.410 回答
0

看起来 CDT 应该属于该软件包cdtPack,或者您从错误的目录运行它...

尝试更改bin目录并class再次运行该文件。不要忘记在package名字前加上class名字。例如:

...\bin> java cdtPack.CDT
于 2013-08-28T06:30:36.157 回答
-1

尝试这个

你转到 src 目录,如果那里有类文件,然后输入

Java CDT

如果该类存在于其他目录中,则键入

java a/b/c/Java类名

如果你想在运行时添加一些运行时 jar,那么

java -cp classpath=%classpath%;jarfilename.jar; a/b/c/Java类名

于 2013-08-28T06:05:16.323 回答