2012-08-28 106 views
1

我得到上面的错误,当我尝试编译这个简单程序:如何传递命令行参数?

/* @author 
* This program expects two command-line arguments 
* -- a person's first name and last name. 
* For example: 
* C:\Mywork> java Greetin Annabel Lee 
*/ 
public class Greetin 
{ 
    public static void main(String[] args) 
    { 
     String firstName = args[0]; 
     String lastName = args[1]; 
     System.out.println("Hello, " + firstName + " " + lastName); 
     System.out.println("Congratulations on your second program!"); 
    } 
} 

从寻找其他的问题,我理解错误有事情做与args == 00比数量越多,但我不不知道如何解决这个问题。 是否有任何方式的错误也被确定为void造成的?

+0

当你运行程序时,你传递了两个参数吗?哪一条是12号线? –

+0

第12行是字符串firstName = args [0]; – user1629075

+0

我想我分别传递args [0]和args [1]的名字和姓氏的两个参数b/c。 – user1629075

回答

2

我的猜测是没有任何参数提供给您的程序。良好的约定是确保用户输入预期的参数量,否则死亡。你的情况:

if(args.length != 2){ 
    System.out.println("usage: Greetin <firstName> <lastName>"); 
} 
else{ 
    String firstName = args[0]; 
    String lastName = args[1]; 
    System.out.println("Hello, " + firstName + " " + lastName); 
    System.out.println("Congratulations on your second program!"); 
} 

此外,还要确保你键入:java Greetin Annabel Lee编译正确设置参数之后。

+0

谢谢,修复帮助,我开始在Java,所以一些术语有点外国,但我会习惯它与一些学习。 – user1629075

1

您可能不会将两个命令行参数传递给您的程序。错误是告诉你,数组args没有任何元素,因为索引0超出了有效边界。确保在运行程序时传递参数。

java Greetin Annabel Lee