繁体   English   中英

如何传递命令行参数?

[英]How to pass command-line arguments?

我尝试编译这个简单程序时遇到上述错误:

/* @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引起?

我的猜测是你的程序没有提供任何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以正确设置参数。

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

java Greetin Annabel Lee

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM