如何传递命令行参数?

时间:2012-08-28 02:15:27

标签: java command-line

当我尝试编译这个简单的程序时,我得到了上述错误:

/* @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

引起

2 个答案:

答案 0 :(得分:2)

我的猜测是你的程序没有提供任何args。好的惯例是确保用户输入预期的args数量,否则死亡。在你的情况下:

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以正确设置参数。

答案 1 :(得分:1)

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

java Greetin Annabel Lee