Exception inthread "main" java.lang.NoClassDefFoundError: hello的问题 
我的环境变量设置是:
Path C:\Program Files\Java\j2sdk1.4.0\bin;java_home C:\Program Files\Java\j2sdk1.4.0classpath .;C:\Program Files\Java\j2sdk1.4.0\lib\tools.jar;C:\Program Files\Java\j2sdk1.5.0\lib\dt.jar;在我编好一个小源程序hello.java之后,生成hello.class文件是没问题
就是在运行hello.class文件时 会出现以下提示 :
Exception in thread "main" java.lang.NoClassDefFoundError: hello调试程序为:
//hello.java
public class hello{
puclic static void main(String args[]){
System.out.println("Hello!");
}
}j2sdk1.4.0安装了好几遍了(官方网站下载),路径设置是也检查了不下二十次了,问题依旧!烦!!!
javac编译能通过,正确生成.class文件
java运行提示Exception inthread "main" java.lang.NoClassDefFoundError: hello
我用set命令将class文件导入到环境变量中
无效!!!此前也是用j2sdk1.4.0的,编译运行均正常。大虾们求救啊!烦了一天了
(回帖时看清问题啊!!!   路径设置是也检查了不下二十次了         )

解决方案 »

  1.   

    修改path
    Path 
    .;C:\Program Files\Java\j2sdk1.4.0\bin;
    ==
    .表示当前路径
      

  2.   

    环境变量错了吧:
    (我的为例):
    path:C:\Windows\System32;C:\Windows\system32\Wbem;D:\j2sdk\;D:\j2sdk\bin;classpath:D:\j2sdk\lib\dt.jar;D:\j2sdk\lib\tools.jar;D:\j2sdk\bin;.;
    对于JAVA_HOME好象可要可不要.
      

  3.   

    classpath=.;C:\Program Files\Java\j2sdk1.4.0\jre\lib\rt.jar
      

  4.   

    你放Hello.class的路径不在CLassPath中,加上就行
      

  5.   

    这个问题着实很常见,kingfish(无鳔石首鱼 )兄讲得很对啊,万一还是不行,就把当然的路径也加到path里面,多试试吧!
      

  6.   

    假设你的hello.java在 c:\
    1 c:\>javac hello.java
    2 c:\>java hello
      

  7.   

    出现你那种情况可能是:
    ,你运行程序程序的不在当前目录;例如你的class文件放在c:下。而你又在d:下运行你的程序:
     D:\>java hello
    由于你没有将c;这个路径加如到你的classpath中,所以
      

  8.   

    路径名没有空格!!!
    Hello.class的路径不在CLassPath中,加上不解决问题
    环境变量没有错啊
      

  9.   

    环境变量问题了:你建一个1.bat文件:
    包含下面的内容
    path=D:\j2sdk\binset classpath:D:\j2sdk\lib\dt.jar;D:\j2sdk\lib\tools.jar;D:\j2sdk\bin;.;如果出现上面的错误运行这个文件就行了也可以在系统特性--》环境变量--》系统变量里设定,以后就不会出现这种问题了
      

  10.   

    classpath 里不需要:D:\j2sdk\bin 嘿嘿set classpath:D:\j2sdk\lib\dt.jar;D:\j2sdk\lib\tools.jar;.;
      

  11.   

    你的jdk不要装在 program files里面,这样你设置path和classpath的时候,你的java会找不到....
      

  12.   

    classpath=D:\j2sdk\lib\dt.jar;D:\j2sdk\lib\tools.jar;.;怎么老出错了
      

  13.   

    实在不行把hello.java拷到bin下去编译执行,总归可以了吧,^_^
    或者试试不要把jdk装在Program Files下
    可能性最大的就是路径或者大小写问题。木瓜兄E文厉害啊,看见E文单词就翻译.
      

  14.   

    可能性最大的就是路径问题,你在.class文件的路径下调用 javac hello
      

  15.   

    估计是路径的问题了,不过一般正常安装的JDK,都是不需要设置PATH的。
      

  16.   

    path里少了个“.”,“.”表示当前目录下,把它加上去就应该可以了
      

  17.   

    你把Program Files用Program20%Files替换试试
      

  18.   

    两种可能:一classpath中需要加上一个. 这个点表示当前路径;二是你的大小写,从你的代码上看好像大小写的问题不存在。
      

  19.   

    疯了又把jdk重装一遍
    现在环境变量为classpath.;D:\j2sdk1.4.2_08\lib;D:\j2sdk1.4.2_08\lib\dt.jar;d:\j2sdk1.4.2_08\lib\tools.jar
    path.;D:\j2sdk1.4.2_08\bin;
    在.class文件的路径下调用 javac hello
    能顺利编译,并能生成正确的类唯独java命令后无论在那运行
    都是
    Exception inthread "main" java.lang.NoClassDefFoundError研究了一天,疯掉了
      

  20.   

    实在不行,你就用jcreator。
    用jcreator自己去配环境。
      

  21.   

    java 安装路径环境变量注意:假如你安装路径是c:\j2sdk1.4\
    1.path:就是你可以运行的文件目录,所以应该是把c:\j2sdk1.4\bin;这个加在这个环境变量里。注意要有分号。然后测试一下:运行cmd,然后键入java和javac看看可不可以。
    2.JAVA_HOME:重新建立一个环境变量,要大写。然后值是c:\j2sdk1.4\;
    3.classpath:一般都要重新建立一个,值应该是c:\j2sdk1.4\lib;.;    如果以后有其他的lib要加入,也加入这个路径。一定要有点(.),表示当前路径
    4.还有最重要的一点是路径不能有空格。你的可能就是这个问题了。不要把jdk装在Program files下。
    如果有什么错的,请高手指点。
      

  22.   

    我是这样编译的,是可以的。public class hello
    {
    public static void main(String[] args)
    {
    System.out.println("Hello!");
    }
    }
      

  23.   

    我的路径是C:\j2sdk1.4.2把变量给你看看。
    classpath=C:\j2sdk1.4.2\lib;.;
    Path=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\PROGRA~1\ULTRAE~1;C:\j
    2sdk1.4.2\bin;C:\jboss-4.0.1\bin;C:\mysql\bin;D:\Programm\eclipse;C:\Program Fil
    es\Microsoft Visual Studio\VJ98;C:\Program Files\CVSNT\JAVA_HOME=C:\j2sdk1.4.2\
      

  24.   

    不知道你具体是什么情况,你可以试试 java -cp "你的hellov.class的路径" hello
      

  25.   

    jcreator自己去配环境
    怎么做啊
    我装了jcreator3.5
      

  26.   

    装完java并配置好环境变量后,把机器重新启动一下,真是的,楼主的变量配置绝对没有问题
      

  27.   

    classpath 里不需要:D:\j2sdk\bin 嘿嘿set classpath:D:\j2sdk\lib\dt.jar;D:\j2sdk\lib\tools.jar;.;
      

  28.   

    .;
    放到classpath 前后有什么不同么
      

  29.   

    大哥,看看你的修饰苻,puclic,是public啊
    细心啊
      

  30.   

    回楼上的 
    puclic是打错了,不然javac编译不会通过啊“.;”
    放到classpath 前后有什么不同
      

  31.   

    //hello.java
    public class hello{
    puclic (你这里打错一个字母public)static void main(String args[]){
    System.out.println("Hello!");
    }
    } 好好看一下。当然会报错了。唉~细心一点。
      

  32.   

    SET PATH="C:\Program Files\Java\jdk1.5.0\bin";
    "C:\Program Files\Java\jdk1.5.0\bin\";%PATH%
    我的就是这么设的,楼主可以根据自己的路径改一下
      

  33.   

    没有问题
    真正的问题是运行的时候应该用
    java hello
    命令
    kingfish(八百里秦川@龙城异客)讲过了
      

  34.   

    谢谢以上所有人 
    请大家到下面的帖子里领分:
    http://community.csdn.net/Expert/topic/4206/4206838.xml?temp=.2640955晚上12.00前结