运行JAVA控制台应用程序时出现NoClassDefFoundError错误

时间:2013-08-05 20:34:16

标签: java noclassdeffounderror

我创建了一个小HelloWorld示例,我遇到了从命令提示符(在Windows上)运行它的问题。当我试图通过以下方式运行它时:

从命令提示符

java tcpServer 我得到 NoClassDefFoundError
我能够用javac编译它,并生成类文件。

我正在阅读的某个地方,我必须将我的类文件夹的路径放入CLASSPATH环境变量中。我已经完成并重新启动了机器,但我仍然遇到同样的错误。

我也试图通过 java -cp c:\ MyFolderWhereClassFileIs HelloWorld 来运行它,它不起作用。

我查看了ENV变量,我有以下内容: JAVA_HOME:C:\ Program Files(x86)\ Java \ jdk1.6.0_26; JRE_HOME:C:\ Program Files(x86)\ Java \ jre6; CLASSPATH:C:\ HelloWorld;

那么,我该如何运行呢? 任何想法如何解决这个问题?感谢。

PS。对我来说最烦人的是,如果我在eclipse中创建java项目,并创建HelloWorld示例,那么它运行正常......

更新:

这是代码。它确实有指定的包。

package test.com;
public class HelloWorld {
    public static void main(String[] args) {
        System.out.print("Hello World");
    }
}

我的HelloWorld.java和HelloWorld.class文件在这里: C:\工作空间\ TestApp \ SRC \测试\ COM

到目前为止我学到的一件事是我无法在com文件夹或测试文件夹中运行它。我必须在src文件夹类文件中找到...但我仍然无法运行它...总是出现同样的错误。

1 个答案:

答案 0 :(得分:2)

您的班级是否有包裹名称?也就是说,顶部的声明是

package <mypkgname>;

如果是这样,那么您必须(A)创建正确的目录结构,(B)在类名前加上{{1}中的包名称}命令。

例如,如果您的Java文件如下所示:

java

然后基本目录结构类似于:

package hello;
public class HelloWorld {
    ...
}

你的bash命令是:

src/hello/
src/hello/HelloWorld.java
src/hello/HelloWorld.class

否则,如果您的类没有包名,则它将被放置在默认包中。在这种情况下,您只需cd src java hello.HelloWorld 到您的类文件所在的目录,然后运行cd