如下的代码,我运行后发现主函数不能接收数组,这个系统登录功能是不是缺少点什么呢 public class LoginDemo01
{
public static void main(String[] args) 
{
    if(args.length!=2){
   System.out.println("输入的参数不正确,系统退出");
           System.out.println("格式:java LoginDemo01 用户名 密码");
   System.exit(1);
}
String name=args[0];
String password=args[1];
if(name.equals("lixinghua")&&password.equals("mldn"))
{
System.out.println("欢迎"+name+"光临");
}
else {
System.out.println("错误的用户名和密码");
}

}
}  

解决方案 »

  1.   

    不能接收?
    传参数了么?怎么知道的不能接收?把args打印出来看看。
      

  2.   

    程序没错啊  可以输入啊  cmd输入:java LoginDemo01 lixinghua mldn
    出现:欢迎lixinghua光临
      

  3.   

    需要给主函数配参数的,是不是主函数的参数传错了,或者没有传参数
    在eclipse下,就是右键-->run as-->open run dialog-->(x)Arguments里的program arguments
    参数之间用空格隔开
      

  4.   

    可以运行
    在cmd下,java LoginDemo01 lixinghua mldn
    结果:欢迎lixinghua光临楼主可能是直接先javac LoginDemo01.java,然后java LoginDemo01,这样就会报错
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at LoginDemo01.main(LoginDemo01.java:4)
    这样是不行的,因为你没有传参数进去
      

  5.   

    public class Test
    {
     public static void main(String[] args)
    {
        if(args.length!=2){
     
         System.out.println("输入的参数不正确,系统退出");
              System.out.println("格式:java LoginDemo01 用户名 密码");
      
              System.exit(1);
       }
        else {String name=args[0];
        String password=args[1];
        if(name.equals("lixinghua")&&password.equals("mldn"))
        {
         System.out.println("欢迎"+name+"光临");
        }
        else {
        System.out.println("错误的用户名和密码");
        }    }

    }} 
    这样写就不会出错了。不管有没有传递参数