HOME> Javaアプリケーション講座>コマンドライン引数

コマンドライン引数

javaでは、main()メソッドを利用してプログラムに引数を与えます。
そのため、main()メソッドは、String型の配列を1つ持っています。
今まで、何も考えなく書いていた、 System.out.println(String args[]) がそれです。
コマンドライン引数は、 main() メソッド内で利用できるパラメ-タを与える仕組みです。
コマンド ラインで実行時に渡された文字列が String 型の配列 args に代入されます。

コマンドラインから渡された引数の最初の文字列はargs[0]で呼び出すことができます。
また配列の長さをあらわすのにlength を利用して求めることができます。

ここはまずサンプルプログラムを作成してコマンドラインを見ていきます。
では、コマンドラインを使ったサンプルプログラムを作っていきます。

サンプルプログラム(Sample31.java)

class  Sample31{
    public static void main(String args[]){
 System.out.println("args[0] =" + args[0]);
 System.out.println("args[1] =" + args[1]);

 System.out.println("-----------------");
 System.out.println("配列の長さは");
 System.out.println(args.length);
  }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイルしてみます。
次に実行するのですがただ実行はしません。
今までは実行となれば

java Sample31

でした。

ここではコマンドラインから引数を渡さなければいけません。

つまり、
System.out.println("args[0] =" + args[0]);
System.out.println("args[1] =" + args[1]);
ということで2つの引数を渡さなければいけません。

渡し方は java Sample31 引数 引数 です。
引数の間は必ず半角スペースを入れなければいけません。 では、実行します。

以下のように記述してください。

java Sample31 今日は いい天気だな?


次に

java Sample31 10 20

と実行してください。
今回あえて2回実行しました。つまりコマンドラインの引数を変えてやるだけで実行k結果も変わります。

また、ここであえて2回目の実行に数字の10 20を引数に渡しましたが、ここでの10 20 はint型ではなく
String型の文字列です。そこを間違えないようにしてください。


今回は2回実行しました。実行結果は上記のようになります。

コマンドプロンプスでの文字の入力方法

今、ここでjava Sample31 今日は いい天気だな?

と記述してください。といいましたが、あれ今日は いい天気だな?が入力できない?と悩まれている方もいるのではと思い
ここで入力方法を解説したいと思います。
これは、XPでの入力方法ですが

ショートカットキーで

Altキー + 半角/全角キーです。半角/全角キーはTabキーの上にあります。

Altキー + 半角/全角キーを押すと以下のようになります。
上の図を見てください。

右下に全あ般ローマとなっています。
それで日本語入力ができるようになりました。

次に2つのプログラムを確認したいと思います。

サンプルプログラム(Sample31_1.java)

class Sample31_1{
    public static void main(String args[]){
 System.out.println("args[0] =" + args[0]);
 System.out.println("args[1] =" + args[1]);

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

プログラムをコピーする場合すべて選択をクリックしてください。

サンプルプログラム(Sample31_2.java)

class Sample31_2{
    public static void main(String args[]){

 System.out.println("args[0] =" + args[0]);
 System.out.println("args[1] =" + args[1]);
int x = Integer.parseInt(args[0]); int y = Integer.parseInt(args[1]); System.out.println(args[0] +" + " + args[1] + " = " + (x + y));
} }

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。

Sample31_1 も Sample31_2 も引数に 10 20 を渡しました。
しかし演算結果は異なります。
Sample31_1 は そのまま args[0] と args[1] を演算しているので、10 も 20も文字列 として扱われています。

文字列の計算はそのまま連結するだけでしたね。

したがって、10 と 20 を連結して1020になります。

しかし、Sample31_2は Integer.parseIntメソッドを使ってint型に変換しています。

ここで、使用している Integer.parseIntはIntegerクラスのメソッドで文字列を
int型に変換してくれます。
したがってint型のデータとして扱われるわけです。
出力結果でわかるように 10 + 20 = 30 になるわけです。

ページのトップへ戻る