免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1326 | 回复: 0
打印 上一主题 下一主题

java.lang.NoSuchMethodError错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-02 14:34 |只看该作者 |倒序浏览
今天上班手上的事情不是很多,就跟着下载的视频学习JAVA,在MyEclipse中写好编译后报:Exception in thread "main" java.lang.NoSuchMethodError: Person.shout()V
at Demo03.main(Demo03.java:42)
错误
JAVA代码如下:

class Person
{
    String name;//名字
    int age;//年龄
    public void Shout()
    {   
        System.out.println("姓名 :"+name);
        System.out.println("年龄 :"+age);
    }
}
public class Demo02 {
    public static void main (String args[])
    {
        Person Ren = null;
        Ren = new Person();
        
        Ren.name = "小美";
        Ren.age = 20;
        
        Person Ren1 = new Person();
        
        Ren1.name = "小王";
        Ren1.age = 28;
        
    Ren.Shout();
    System.out.println("***************");
    Ren1.Shout();
   
    }
}
视频在DOS里编译不会报错,但到MyEclipse里就报错。在网上查了一些资料,大部分是说,包类有冲突。还在解决中.....如果那位大侠有解决办法,希望能指点一二,小女子在此谢过。
今天把上面的代码重新放到MyEclipse里再次编译,结果报的是另一种错误:Exception in thread "main" java.lang.NoClassDefFoundError: Person (wrong name: person)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at Demo08.main(Demo08.java:17)

修改成(可以编释通过)
只是修改把类person和shout首字母改为小写,并把下面调用的字母也改为相应的小写就可以通过,不知道这二个字母是不是关键字的原因引起的错误。
class person
{
    String name;//名字
    int age;//年龄
    public void shout()
    {
        System.out.println("姓名 :"+name);
        System.out.println("年龄 :"+age);
    }
}
public class Demo08 {
    public static void main (String args[])
    {
        person Ren = null;
        Ren = new person();
        
        Ren.name = "小美";
        Ren.age = 20;
        
       person Ren1 = new person();
        
       Ren1.name = "小王";
       Ren1.age = 28;
        
    Ren.shout();
    //System.out.println(Ren.shout()) ;
    System.out.println("***************");
    Ren1.shout();
   
    }
}

得出结果为:
小美20
***************
小王28
总结:有点头大,同一段代码今天和明天放到同一台机子的MyEclipse里出的错误不一样,不过显示出结果也就OK了(不知道跟系统或是软件冲突或是别的有没有关系,唉~~继续努力中)。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/69626/showart_1810165.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP