2013-08-05 51 views
0

我创建了一个小小的HelloWorld示例,并且遇到了从命令提示符(在Windows上)运行它的问题。当我尝试运行它:从命令提示符TCPSERVER运行JAVA控制台应用时出现NoClassDefFoundError错误

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

某处我正在阅读,我不得不把路径放到CLASSPATH环境变量的class文件夹中。我已经完成并重新启动机器,但我仍然得到相同的错误。

我也试图通过运行它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示例,那么它运行良好......

UPDATE:

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

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文件夹中才能找到类文件...但我仍然无法运行它...总是出现同样的错误。

回答

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 

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

+0

我试着按照你的说法:在我的情况下,我输入:“cd src”,然后,“java test.com.HelloWorld”...我得到同样的错误。请看看我上面的更新..并感谢您的回复 – bobetko

+0

@bobetko适合我:http://pastebin.com/AeD06jCV – zapl

+0

想通了......我会标记你的答案是正确的。 Eclipse将类文件放入bin文件夹,并且我没有马上注意到......我将类文件复制回java文件所在的位置,然后像您所说的那样运行HelloWorld。谢谢。 – bobetko

相关问题