本帖最后由 JACK...... 于 2013-12-6 11:13 编辑
大家好,今天学多态的时候,遇到一个小问题,麻烦大家来看一看:
这是cmd中出错的截图:
以下是出错java源码:
interface PCI{
public void open();
public void close();
}
class mainboard{
public void run(){
System.out.println("board run");
}
public void userpci(PCI a){
if(a!=null){
a.open();
a.close();
}
}
}
class net implements PCI{
public void open(){
System.out.println("open net");
}
public void close(){
System.out.println("close net");
}
}
class MainBoard{
public static void main(String [] args){
mainboard run=new mainboard();
run.run();
run.userpci(new net());
}
}
我是把源码,放到桌面上的,方便使用。没有设置classpath。
以下是,cmd中出错的源码。
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Jack>cd desk*
C:\Users\Jack\Desktop>javac MainBoard.java
C:\Users\Jack\Desktop>java MainBoard
Exception in thread "main" java.lang.NoClassDefFoundError: mainboard (wrong name: MainBoard)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
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)
at MainBoard.main(MainBoard.java:28)
C:\Users\Jack\Desktop>
问题1.
请问为何出现这种现象,
编译可以通过,但不能在cmd中运行?
问题2.
为何,在myeclipse中可以正常运行?
问题3.
为何,我同样在桌面上的一个java源码文件,既可以编译又可以运行?为何,该java源文件不成呢?
|