引数を指定してmainメソッドを呼び出す

広告

Javaのプログラムが実行されるとまず最初に呼び出されるメソッドがmainメソッドです。mainメソッドの定義を改めて書くと次のようになっています。

class クラス名{
  public static void main(String args[]){
    /* ... */
  }
}

見ていただくと分かりますがmainメソッドにもStringクラスの配列の引数が1つ設定されています。ただmainメソッドは特別なメソッドでプログラム内から呼び出されることはなくプログラムの実行時に一度だけ自動的に呼び出されるものです。mainメソッドを呼び出す時に引数に渡す値はいつどこで指定するのでしょうか。

実はmainメソッドに値を渡す場合にはプログラムを実行する時に値を指定することで、mainメソッドに対して値を渡すことが可能となります。値を指定してプログラムを実行する場合は次の書式となります。

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

値を指定してプログラムを実行する場合は「java クラスファイル名」の後に半角スペースを一つ入れた後にmainメソッドに渡したい値を記述します。複数の値を記述する場合は半角スペースで区切り続けて記述して下さい。このようにプログラムの実行時に指定する値をコマンドライン引数と呼びます。

指定された値はmainメソッドが呼ばれる時にStringクラスの配列として渡さ、その配列の要素に順に値が格納されています。その為、mainメソッドの中で配列の要素を参照することでプログラム実行時に指定された値を取り出すことができます。

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

mainメソッドの引数をうまく利用することで、プログラム実行時に指定した値を処理するようなプログラムを作成することができます。

なお、引数のデータ型はStringクラスのオブジェクトですので、指定された値は全て文字列として扱われます。数値を指定した場合でも数値からなる文字列として扱われますので注意して下さい。

サンプル

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

JSample1_1.java

class JSample1_1{
  public static void main(String args[]){
    System.out.println("「" + args[0] + "」");
  }
}

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

p1-1

実行する時に指定した値が引数としてmainメソッドに渡されている事が確認できます。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。