各位好,我之前配置好了jdk1.4的环境,并且用程序测试也是成功的,今天我再在dos下运行java命令却报错了,
Exception in thread "main" java.lang.NoClassDefFoundError
这个是什么原因呢?环境变量没有改过,期间就换了一下机器的IP,以前指定的,现在自动获取,IP段不一样了。

解决方案 »

  1.   

    换IP不会影响到程序运行的。
    建议楼主好好检查一下环境变量,尤其是classpath的设置。
      

  2.   

    1、 你的文件名对吗?
    JAVA要求你的文件和你的类名严格对应的。
    比如 public class HelloWorld{ .....
    那么文件名一定只能是HelloWorld.java,看仔细了!2、你的程序中有main方法吗?参数什么的对吗?
    main方法的声明应该是这样子的:
    public static void main(String[] args)3、记住,javac后面跟的参数是文件名,但java 后面跟的是类名!
    这是我开始学JAVA是犯的错,java HelloWorld.class,然后就报错。后来才弄明白,应该是java HelloWorld。4、设置了classpath了吗?
    不仅是在安装JDK时要设置的内容,一般来说最好还要自己设置一个目录来存放自己的类文件的。比如d:\class目录。
    设置classpath=%classpath%;d:\class
    那么,现在将HelloWorld.class文件COPY到d:\class目录下,再java HelloWorld应该就OK了。5、结合第3点和第4点
    如果你的类是属于某一个包的,比如这样一个类sony.test.HelloWorld,那么按照我在第4点中说的目录来说,就应该将HelloWorld.class文件存放到d:\class\sony\test\目录下。
    执行的时候应该参考第3点中说的,按类名执行:java sony.test.HelloWorld。
      

  3.   

    是不是装过什么带有jdk的软件,比如 weblogic、oracle 等等。
    装过这些软件,你的path会被改掉。
    你自己看看 path,IP不会导致 jdk 不可用。
      

  4.   

    jdk 1.4需要配置classpath
    jdk 1.5以上就不需要了
      

  5.   

    1、 你的文件名对吗? 
    JAVA要求你的文件和你的类名严格对应的。 
    比如 public class HelloWorld{ ..... 
    那么文件名一定只能是HelloWorld.java,看仔细了! 2、你的程序中有main方法吗?参数什么的对吗? 
    main方法的声明应该是这样子的: 
    public static void main(String[] args) 3、记住,javac后面跟的参数是文件名,但java 后面跟的是类名! 
    这是我开始学JAVA是犯的错,java HelloWorld.class,然后就报错。后来才弄明白,应该是java HelloWorld。 4、设置了classpath了吗? 
    不仅是在安装JDK时要设置的内容,一般来说最好还要自己设置一个目录来存放自己的类文件的。比如d:\class目录。 
    设置classpath=%classpath%;d:\class 
    那么,现在将HelloWorld.class文件COPY到d:\class目录下,再java HelloWorld应该就OK了。 5、结合第3点和第4点 
    如果你的类是属于某一个包的,比如这样一个类sony.test.HelloWorld,那么按照我在第4点中说的目录来说,就应该将HelloWorld.class文件存放到d:\class\sony\test\目录下。 
    执行的时候应该参考第3点中说的,按类名执行:java sony.test.HelloWorld。 
    支持,还没改对吗
      

  6.   

    jdk 1.4需要配置classpath 
    jdk 1.5以上就不需要了
    这样行吗????
      

  7.   

    为什么还用jdk1.4为啥不用jdk6?
    把你的classpath重新配置一遍,放到最前边,可能装其他的软件被修该了
      

  8.   

    你环境变量的配置有问题,建议按照以下配置: 
    我以前也有这个问题,配置如下: 
    创建环境变量: 
    JAVA_HOME=C:\jdk150_04; 
    PATH=%JAVA_HOME%\bin;%PATH% 
    CLASSPATH=.;%JAVA_HOME%\lib 祝你好运!!!
      

  9.   


    应该是classpath没有定义,楼主可以去控制面板->系统->高级->环境变量->系统变量->编辑->把.;拷贝进去 
    相比直接在命令提示符里面修改,上面这个方法可以说是一劳永逸
      

  10.   

    IP改变和这个没关系的,Exception in thread "main" java.lang.NoClassDefFoundError 
    这个好像是main方法里出现异常,你看下main方法里有没问题,否则重新设置一遍环境变量看下
      

  11.   


    我装了ORACLE,估计是因为这个原因,这个应该怎么改环境变量呢?
      

  12.   


    装JDK是因为我要装一个应用,和高版本JDK不兼容。
      

  13.   

    检查一下你的jre或jdk是不是有自动更新。在控制面板里有个java,打开看看是不是里面设定了自动更新。
      

  14.   

    如果是你安装了诸如oracle等软件引起的,重新配置一下path就行了(再配一次,放到最前面C:\Program Files\Java\jdk1.5.0_09\bin;)
      

  15.   

    IP不影響環境變量的吧````出錯信息提示的是缺少main方法,檢查下是不是類命寫錯了`
      

  16.   

    我今天也跟LZ一样,有这种问题,以前都是好的。
    楼上有几位说的,有道理。
    我先去试一下。应该就像他们说的一样。可搞定的。!!3Q了啊 !
      

  17.   

    我今天也跟LZ一样,有这种问题,以前都是好的。
    楼上有几位说的,有道理。
    我先去试一下。应该就像他们说的一样。可搞定的。!!3Q了啊 !