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 == 0あり0、数値よりも大きいことがわかりますが、この場合の問題を修正する方法がわかりません。エラーが原因であると識別される方法はありますvoidか?

4

2 に答える 2

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また、引数を正しく設定するためにコンパイルした後は、必ず次のように入力してください。

于 2012-08-28T02:44:06.260 に答える
1

プログラムに2つのコマンドライン引数を渡していない可能性があります。エラーは、インデックスが有効な範囲外であるため、配列にargs要素がないことを示しています。0プログラムを実行するときは、必ず引数を渡してください。

java Greetin Annabel Lee
于 2012-08-28T02:43:45.713 に答える