package MyPack;
class Balance
{ String name;
 double bal;
 
 Balance(String n,double b)
 { name=n;
   bal=b;
 }
 
 void show()
 {if (bal<0)
 System.out.print("-->");
 System.out.println(name+":$"+bal);
 
 }
}
 
class AccountBalance
{ public static void main(String args[])
{ Balance current[]=new Balance[3];current[0]=new Balance("K.J.Fielding",123.23);
current[1]=new Balance("Will Tell",157.02);
current[2]=new Balance("Tom Jackson",-12.33);for (int i=0;i<3;i++)
 current[i].show();}
}
代码运行出现如下异常:
Exception in thread "main"java.lang.NoSuchMethodError:main
jdk配置正常,其他程序运行也正常!

解决方案 »

  1.   

    如果你两个类写在一起的话,public  AccountBalance
    class Balance
    { String name;
     double bal;
      
     Balance(String n,double b)
     { name=n;
      bal=b;
     }
      
     void show()
     {if (bal<0)
     System.out.print("-->");
     System.out.println(name+":$"+bal);
      
     }
    }
     
    public class AccountBalance
    { public static void main(String args[])
    { Balance current[]=new Balance[3];current[0]=new Balance("K.J.Fielding",123.23);
    current[1]=new Balance("Will Tell",157.02);
    current[2]=new Balance("Tom Jackson",-12.33);for (int i=0;i<3;i++)
     current[i].show();}
    }
      

  2.   

    没错啊!!!!!!!!
    运行结果是:
    K.J.Fielding:$123.23
    Will Tell:$157.02
    -->Tom Jackson:$-12.33
      

  3.   

    总结:多个类写在同一个java文件在,带有main方法的类的访问权限为public且该类的类名必须和文件名一致。
      

  4.   

    有可能java -version与javac -version输出版本不一致
      

  5.   

    都是1.5.0啊,我用的是Jcreator,那个是不是不好用啊?
      

  6.   

    顺便问一下,你用的是那个开发工具?是不是Jcreator不太稳定啊?
      

  7.   

    class AccountBalance 需要有个public主类吧。因为你使用了public static void main(String args[])。
      

  8.   

    能运行啊,是不是你的JDK环境有问题,
    结果跟楼上说的一样啊
      

  9.   

    改成这样:
    public class test { class Balance
    { String name;
     double bal;
      
     Balance(String n,double b)
     { name=n;
      bal=b;
     }
      
     void show()
     {if (bal<0)
     System.out.print("-->");
     System.out.println(name+":$"+bal);
      
     }
    }
     
    class AccountBalance
    {
    void show(){ 
    Balance current[]=new Balance[3]; current[0]=new Balance("K.J.Fielding",123.23);
    current[1]=new Balance("Will Tell",157.02);
    current[2]=new Balance("Tom Jackson",-12.33); for (int i=0;i<3;i++)
     current[i].show(); }
    }
    void show(){
    AccountBalance ab = new AccountBalance();
    ab.show();
    }
    public static void main(String[] args) {
     test t = new test();
     t.show();

    }}
      

  10.   

    程序运行连入口都没见,当然报错了,main 函数!