日期:2014-05-20  浏览次数:20775 次

高手看看书怎么回事
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"

------解决方案--------------------
代码没有任何问题,是因为你的eclipse没有成功编译生成class文件,所以才报错
你重新build一下,再运行应该OK了
------解决方案--------------------
楼主要区别源码与class。
运行如果找不到类,不是看是否有java文件,应该去对应的目录查找是否有class文件。
如果是默认创建的eclipse项目,那么到项目下面的bin目录下面去找class文件。