Java类不会运行(命令提示符)

时间:2013-08-28 05:56:01

标签: java command runtime noclassdeffounderror prompt

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

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

将它们全部编译

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

  

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

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

任何人都知道会出现什么问题?

3 个答案:

答案 0 :(得分:1)

正如linked Q&A解释的那样,当您尝试使用错误的类名运行Java应用程序时会发生这种情况。

你的课看起来像这样:

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

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

但是你这样运行它:

$ java CDT

JVM告诉你:

  

“你告诉我要运行CDT,但是当我查看它时,该课程的名称是”cdtpack.CDT“!!”

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

您的“CDT.class”文件应位于名为“cdtpack”的目录中,然后“cdtpack”的目录应位于类路径中;即。

像这样编译:

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

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

$ java -classpath bin cdtpack.CDT

答案 1 :(得分:0)

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

尝试切换到bin目录并再次运行class文件。不要忘记在package名称前加上class名称。例如:

...\bin> java cdtPack.CDT

答案 2 :(得分:-1)

试试这个

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

java CDT

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

java a / b / c / JavaClassName

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

java -cp classpath =%classpath%; jarfilename.jar; A / B / C / JavaClassName