A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© JACK...... 中级黑马   /  2013-12-5 10:13  /  2100 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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源文件不成呢?








评分

参与人数 1技术分 +1 收起 理由
贺奕凯 + 1 鼓励一下

查看全部评分

6 个回复

倒序浏览
本帖最后由 JACK...... 于 2013-12-5 21:37 编辑

求解,不会无解把,挂了11个小时了,还没解。。。????
回复 使用道具 举报
{:soso_e100:}     大神走过,请帮忙解答。求解了。。。。。。
回复 使用道具 举报
class mainboard和 class MainBoard 这两个后面的MainBoard  没编译出来,改个名字就好了
比如 LainBoard  
回复 使用道具 举报
刘敏 发表于 2013-12-5 21:44
class mainboard和 class MainBoard 这两个后面的MainBoard  没编译出来,改个名字就好了
比如 LainBoard   ...

追问,MainBoard为何,没有编译出来。这是软件jdk的原因,还是,具体,代码的原因?
在这,先谢谢刘敏,热心回答。
回复 使用道具 举报
JACK...... 发表于 2013-12-5 21:51
追问,MainBoard为何,没有编译出来。这是软件jdk的原因,还是,具体,代码的原因?
在这,先谢谢刘敏, ...

由于windows目录不区分大小写,所以后来的XX.class无法建立文件。但内容还是替代了之前的内容。可看下: http://socket.blog.163.com/blog/static/2098730042009027860767/

评分

参与人数 1技术分 +1 收起 理由
贺奕凯 + 1

查看全部评分

回复 使用道具 举报
刘敏 发表于 2013-12-5 21:57
由于windows目录不区分大小写,所以后来的XX.class无法建立文件。但内容还是替代了之前的内容。可看下:  ...

非常感谢您的回答。就此已经解决了问题。


thank you!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马