当我尝试编译这个简单的程序时,我得到了上述错误:
/* @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 == 0
和0
大于数字有关,但我不知道如何解决此案例的问题。
是否有任何方法错误也被识别为由void
?
答案 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