0

我创建了一个小 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;

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

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:\workspace\TestApp\src\test\com

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

4

1 回答 1

2

你的班级有包名吗?也就是说,顶部的声明如下

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​​.

于 2013-08-05T20:41:07.913 回答