コマンドライン引数の数を確認

広告

コマンドライン引数は任意の数を指定することができます。複数指定する場合はカンマではなく半角スペースを区切り文字として続けて記述します。

java クラスファイル名 値1 値2 ...

mainメソッドではStringクラスの配列としてコマンドライン引数を受け取ります。

public static void main(String args[]){
  System.out.println(args[0]);
  System.out.println(args[1]);
}

コマンドライン引数を2つ指定した場合は2つの要素を持つ配列となり、3つ指定した場合は3つの要素を持つ配列となります。

mainメソッドで引数を利用したプログラムを作成する場合、本当にコマンドライン引数をが指定されてプログラムが実行されているのか確認しなければなりません。またコマンドライン引数の数だけ何か処理を行うような場合でもコマンドライン引数がいくつ指定されたか確認する必要があります。確認するにはmainメソッドの引数に指定された配列の長さを取得します。

配列変数名.length

例えばコマンドライン引数が必ず1つ指定されていなければいけない場合、例えば次のような記述を行います。

public static void main(String args[]){

  if (args.length != 1){
    System.out.println("引数を1つ指定して下さい");
    System.exit(1);
  }

  /* 本来行うべき処理 */
}

プログラム実行時に指定されたコマンドライン引数の数を配列の長さで確認し、もしも1つでなかった場合はメッセージを表示した上でプログラムを終了しています。「System.exit(1)」はプログラムを終了させるための式であり引数に0以外を指定するとステータスとして正常ではなく形で終了したことを表します。

コマンドライン引数を利用する場合には、異なった形で引数が指定されて実行された時にプログラムの実行方法を表示するような処理を記述しておくと親切です。

サンプル

では簡単な例で試しておきます。

JSample2_1.java

class JSample2_1{
  public static void main(String args[]){
    if (args.length != 2){
      System.out.println("引数を2つ指定して下さい");
      System.out.println("JSample2_1 値1 値2");
      System.exit(1);
    }

    System.out.println("「" + args[0] + "」");
    System.out.println("「" + args[1] + "」");
  }
}

コンパイル後に実行すると次のように表示されます。

p2-1

引数を2つ指定せずに実行すると実行の仕方が表示されプログラムは終了します。2つ指定して実行した場合だけ、その後の処理が実行されます。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)