源文件:Hello.java
package p2;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello D From package p1");
}
}
将Hell.class放到D:\
D:\>java Hello
Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong
/Hello)
……
D:\>java p2.Hello
Exception in thread "main" java.lang.NoClassDefFoundError: p2/Hello
将Hell.class放到D:\p2
D:\>cd p2
D:\p2>dir *.class
..
2007-08-03 21:15 430 Hello.class
D:\p2>java Heloo
Exception in thread "main" java.lang.NoClassDefFoundError: Heloo
D:\p2>set classpath=.;
D:\p2>java Hello
Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong name: p2
D:\p2>set classpath=d:\p2;
D:\p2>java hello
Exception in thread "main" java.lang.NoClassDefFoundError: hello (wrong name: p2
/Hello)
D:\p2>cd..
D:\>java p2.Hello
Hello D From package p1
总结:带包的类,必须在包所指定的目录下。而执行时必须在包外执行,执行时,类名前面一定要带包名。