【问题标题】:NoClassDefFoundError error while running JAVA console app运行 JAVA 控制台应用程序时出现 NoClassDefFoundError 错误
【发布时间】:2013-08-05 20:34:15
【问题描述】:

我创建了一个小 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; 类路径:C:\HelloWorld;

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

附言。对我来说最烦的是,如果我在 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:\workspace\TestApp\src\test\com

到目前为止,我学到的一件事是我无法从 com 文件夹或 test 文件夹中运行它。我必须在src文件夹中才能找到class文件...但是我还是不能运行它...总是同样的错误。

【问题讨论】:

    标签: java noclassdeffounderror


    【解决方案1】:

    你的班级有包名吗?也就是说,顶部的语句显示为

    package <mypkgname>;?

    如果是这样,那么您必须 (A) 创建正确的目录结构并 (B) 在您的 java 命令中使用包名作为类名的前缀.

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

    package hello;
    public class HelloWorld {
        ...
    }
    

    那么一个基本的目录结构将类似于:

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

    你的 bash 命令是:

    cd src
    java hello.HelloWorld
    

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

    【讨论】:

    • 我按照你说的尝试了:在我的情况下,我输入:“cd src”,然后,“java test.com.HelloWorld”......我得到了同样的错误。请看看我上面的更新。感谢您的回复
    • 想通了...我会将您的答案标记为正确答案。 Eclipse 将类文件放入 bin 文件夹中,但我没有立即注意到...我将类文件复制回 java 文件所在的位置,然后按照您所说的运行 HelloWorld。谢谢。
    • 在使用 IDE 之前了解如何从命令行编译和运行通常很有帮助。
    猜你喜欢
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多