我刚装好JDK1.4.2,写了个小程序想测试一下,程序如下:
public class Hello{
  public static void main(String[] args){
    System.out.println("Hello,world!");
  }
}我存贮为文件:Hello.java,然后我就编译了,编译过程正常,生成了一个Hello.class文件,然后我就用命令java Hello运行这个Hello.class文件,可竟然不能运行,JDK提示如下:Exception in thread "main" java.long.NoClassDefFoundError:Hello
我想了半天也不知道是哪里出了毛病,我是个JAVA新手,还请各位大哥哥大姐姐多多指教小弟弟!!!
小弟弟先谢谢大哥哥大姐姐了!!!

解决方案 »

  1.   

    set JAVA_HOME=D:\Program Files\j2sdk_nb\j2sdk1.4.2
    set PATH=%PATH%;D:\Program Files\j2sdk_nb\j2sdk1.4.2\bin 
    试试
      

  2.   

    同意楼上的,classpath追加当前路径
      

  3.   

    我的JDK1.4.2的安装路径是c:/jdk1.4.2
    我的classpath=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;C:\Program Files\Java\j2re1.4.2_04\lib\ext\QTJava.zip
    不知道这样是不是错了?!
      

  4.   

    我的path=%JAVA_HOME%\bin;%JAVA_HOME%\jre\biner\80\Tools\BINN;D:\setup\mysql\bin;C:\Program Files\QuickTime\QTSystem\
      

  5.   

    classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\Program Files\Java\j2re1.4.2_04\lib\ext\QTJava.zip
      

  6.   

    你的package名是什么执行时要把跳到package的上层目录再执行java 你的package名.Hello
      

  7.   

    不行啊,我把classpath设成了classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\Program Files\Java\j2re1.4.2_04\lib\ext\QTJava.zip
    可是,还不行啊!
    为什么啊?!?!?!?
      

  8.   

    【你的package名是什么执行时要把跳到package的上层目录再执行java 你的package名.Hello』
    什么是package啊?我只是把这个程序文件,包括Hello.java和Hello.class都放在了D:\下,我执行时是先跳到D:\下然后D:\java Hello的,可是这样不能执行!
    我都要崩溃了!!!
      

  9.   

    终于可以执行了,不过不能直接用java Hello执行,而必须用java -classpath . Hello执行,这样不是太麻烦了吗,哪位哥哥给小弟指教一下,如何弄啊?!?!!?
      

  10.   

    :(
    我现在没有ant啊,我想把jdk练习熟练,我可咋整啊???
    俺不活了!!!!:(
      

  11.   

    有java_home和path就可以了
    java_home=
    path=.;%java_home%/bin;...
      

  12.   

    删掉不知道行不行,但我想classpath既然有这个,那它应该是有用的,我想在不删除它的情况下让我的程序能用java  Hello就可以运行,该咋弄啊?!??!!
      

  13.   

    java_home=对应你JDK 的目录
    path=.;%java_home%/bin;...
      

  14.   

    我估计你没有设置环境变量吧~!你可以装一个blue J,那样就可以运行拉~!
      

  15.   

    我以前也曾经遇到过这个问题,我是将安装jdk以后又安装了jre,我刚刚看到你的classpath中也是jdk和jre在不同的安装目录。我当初也是不论怎么设置classpath path都没用。偶愤怒 偶删之 偶重新安装,下载j2se1.4安装,安装之后看到jdk jre都位于java目录下。ok设置classpath=.;%javahome%\lib //此处为jdk中的lib,其实看过很多设置classpath方式,很多都指定了.jar文件。其实指明类库就可以了。
    path=%javahome%\bin
    没问题了 
      

  16.   

    我的jdk的安装路径是:c:\jdk1.4.2
    环境变量设置如下:
    classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\Program Files\Java\j2re1.4.2_04\lib\ext\QTJava.zip
    path=%JAVA_HOME%\bin;%JAVA_HOME%\jre\biner\80\Tools\BINN;D:\setup\mysql\bin;C:\Program Files\QuickTime\QTSystem\
    java_home=c:\jdk1.4.2在安装后在c盘program files下出现了个java文件夹,在该java文件夹下又有三个文件夹:j2re1.4.2_04,j2re1.4.2_09,jre1.5.0_06。java文件夹的路径为:c:\program files\java还请各位大哥哥大姐姐帮我!!!
      

  17.   

    blue J  是什么啊?我是新手,没用过!
      

  18.   


     spark07(暴风雪) 你安装了两个jre版本,javac的时候classloader会不知道应该到那个jre中去加载类。彻底删除不使用的jre1.5重新设置classpath应该就可以了。
    bluej是国外大学使用的java教学软件是一个很小巧的java IDE。不过我建议新手仍然使用ultraedit手写代码,很锻炼的。
      

  19.   

    第一步:右击“我的电脑”,点击“属性”:
                第二步:选择“高级”选项卡,点击“环境变量”:
                第三步:在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”:
                第四步:JAVA_HOME设为JDK的安装路径(如C:\Program 
                Files\Java\jdk1.5.0_06),此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依靠此变量);
                Path使得系统可以在任何路径下识别java命令,设为:
                %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 
                CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:
                .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径) 
                  %JAVA_HOME%就是引用前面指定的JAVA_HOME
                第五步:“开始”->“运行”,键入“cmd”:
                第六步:键入命令“java -version”,出现下图画面,说明环境变量配置成功:
                第七步:好了,打完收工。下面开始你的第一个java程序吧。
      

  20.   

    楼主多半是没有到类文件的目录下去java Hello,你是是在D盘根目录下java Hello,但你的Hello.class文件不在D盘根目录下就会出现这种NoClassDefFoundError。也就是说你到某个目录下用java来运行程序,要确定你的类文件在相应目录下才行。1. 像这种小程序根本与classpath没有多大的关系,而且JDK1.4以上的版本直接装好,不用设置任何变量都可以用的,只是要IDE。2. 出现Exception in thread "main" java.long.NoClassDefFoundError:Hello
    就已经说明path变量没问题了!
      

  21.   

    楼上的,1.5也要设一下javac的路径的。
      

  22.   

    还是要在classpath中加.;或者java -cp path\Hello.java
      

  23.   

    e_ville()大哥,我的Hello.java就是在D盘根目录下,我运行时是这样的d:\java Hello
    这个是没错的啊!
    大概是象liangzhimaomao()大哥说的我可能按多了一个jre1.5,我现在把它删除再试一下。
      

  24.   

    还是不中啊!
    我把jre1.5给删除了,又重新设置了path和classpath,问题依旧!
    现在我的path和classpath的设置如下:
    path=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
    classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
    java_home=c:\jdk1.4.2
      

  25.   

    我遇到同样的问题
    并且我得设置在Win2000 professional 下没任何问题
    在XP 下和楼主问题一样
    也是直接 java Hello   不行
    需要加参数 -classpath .
      

  26.   

    将你的classpath Path=...写在最前面将后面的带java的path覆盖就行了
      

  27.   

    建议使用ecllips开发java!
    比较方便,不用那么麻烦,而且是免费的....
      

  28.   

    应该是classpath配置不对了..
    出现Exception in thread "main" java.long.NoClassDefFoundError:Hello
    就已经说明path变量没问题了!
      

  29.   

    烦!!!! 用1.6的就好了  设置classpath 和 path就可以了  而且简单  不要再钻牛角了
      

  30.   

    在class_path中添加你的source所在的分區,比如説是D盤:D:\像這樣試試(.;%JAVA_HOME%\lib\dt.jar;.;%JAVA_HOME%\lib\tools.jar;D:\;)