public class People
{
int height;
String ear;
void speak(String s)
{
System.out.println(s);
}
}
class A
{
public static void main (String args[])
{
People zhubajie;
zhubajie=new People();
zhubajie.height=170;
zhubajie.ear="两只大耳朵";
System.out.println("身高:"+zhubajie.height);
System.out.println(zhubajie.ear);
zhubajie.speak("师傅,咱们别去西天了,咱们回高老庄吧!");
}
}编译通过,运行时错误如下:
Exception in thread main java.lang.NoSuchMethodError: main错误书上的例子,不知道main方法哪里错了~
望解答~

解决方案 »

  1.   

    你把main方法放到public类里面哈
      放到People里面
      

  2.   

    我记得貌似main是一定要在public类里面的
    给class A 加个public吧
      

  3.   

    真是书上的例子,毁人不倦啊~~~
    java2实用教程第三版 Page19有图为证:
      

  4.   

    代码更改为:public class People
    {
    int height;
    String ear;
    void speak(String s)
    {
    System.out.println(s);
    }
    public static void main (String args[])
    {
    People zhubajie;
    zhubajie=new People();
    zhubajie.height=170;
    zhubajie.ear="两只大耳朵";
    System.out.println("身高:"+zhubajie.height);
    System.out.println(zhubajie.ear);
    zhubajie.speak("师傅,咱们别去西天了,咱们回高老庄吧!");
    }
    }
      

  5.   

    呵呵,main方法一定要写在被public修饰的类里边,否则会报异常滴
    public class A{
        public static void main(String args[]) {
            ...
        }
    }
      

  6.   

    main 方法不一定要放在public 类里面。
    lz的问题可能是,把上述代码写在了一个.java文件里面。一个.java文件里面,可以写多个类,但是只能有一个或零个public类,并且,这个public类的名字要和文件的名字一样。
      

  7.   

    main 方法要写在那个和 .java文件名同名的类里面。lz试试
      

  8.   

    再建一个类 A ,把下面的代码写到 类A里面就可以啦!你看看!我说的是不是对的 。这涉及到调用外部类的方法了!看下面!
    public class People 

    int height; 
    String ear; 
    void speak(String s) 

    System.out.println(s); 

    } 在新建一个类A:public class A 

    public static void main (String args[]) 

    People zhubajie; 
    zhubajie=new People(); 
    //另外我喜欢这样写代码:People zhubajie =new People();  
    zhubajie.height=170; 
    zhubajie.ear="两只大耳朵"; 
    System.out.println("身高:"+zhubajie.height); 
    System.out.println(zhubajie.ear); 
    zhubajie.speak("师傅,咱们别去西天了,咱们回高老庄吧!");