我一直在与这个程序战斗一段时间,但无法弄清楚出了什么问题。任何帮助将不胜感激。
所以这就是问题所在。我有三个类用于登录到mysql数据库,另一个用于从数据库输出数据,最后一个用于保存方法main。我遇到了一个很大的问题,就是让他们编译错误,找不到其他类中方法的符号。我终于使用命令"javac -d bin/cdtPack src/CDT.java src/login.java src/ClientBase.java"
但是,现在当我尝试使用方法main运行类时,我得到错误:
线程“main”中的异常java.lang.noClassDefFoundError:CDT(错误 名称:cdtPack / CDT)
然后是java的列表......
任何人都知道会出现什么问题?
答案 0 :(得分:1)
正如linked Q&A解释的那样,当您尝试使用错误的类名运行Java应用程序时会发生这种情况。
你的课看起来像这样:
package cdtPack;
public class CDT {
....
}
这意味着它的类名是“cdtpack.CDT”。
但是你这样运行它:
$ java CDT
JVM告诉你:
“你告诉我要运行CDT,但是当我查看它时,该课程的名称是”cdtpack.CDT“!!”
您必须了解Java类路径的工作方式,以及javac
和java
以及所有其他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 强>