package com.st.hw;
class Dog{
public Dog(String color){
System.out.println("this is a" + color + " dog");
}
}
public class PetDog extends Dog { PetDog(String color){
super("black");
System.out.println("this is a" + color + " dog");
} public static void main(String[] args) {

PetDog petDog = new PetDog("black");
}
}在eclipse里面运行却出错误。随便写个程序都出同样的错误 ,怎么回事?
java.lang.NoClassDefFoundError: com/st/hw/PetDog
Caused by: java.lang.ClassNotFoundException: com.st.hw.PetDog
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Exception in thread "main" 

解决方案 »

  1.   

    代码没有任何问题,是因为你的eclipse没有成功编译生成class文件,所以才报错
    你重新build一下,再运行应该OK了
      

  2.   

    class Dog{
    public Dog(String color){
    System.out.println("this is a" + color + " dog");
    }
    }
        class PetDog extends Dog { PetDog(String color){
    super("black");
    System.out.println("this is a" + color + " dog");
    } public static void main(String[] args) { PetDog petDog = new PetDog("black");
    }
    }
      

  3.   

    同一个文件中只能由一个public类型的类 ,并且这个类名必须和文件名一致
      

  4.   

    程序上没问题
    应该是你的项目设置的问题
    新建项目试试,先建一个package com.st.hw;
    然后再在它下面建一个PetDog类,把程序贴进去。
      

  5.   

    楼主要区别源码与class。
    运行如果找不到类,不是看是否有java文件,应该去对应的目录查找是否有class文件。
    如果是默认创建的eclipse项目,那么到项目下面的bin目录下面去找class文件。
      

  6.   

    代码没问题,自己建一个PetDog类,然后把代码考进去