Javaの基礎文法 コマンドライン引数(3-12)

記事上広告

コマンドプロンプトを利用したプログラムを作成する際に、ユーザーが入力したデータを利用したい場合があります。

ユーザーの入力したデータを扱うにはいくつかの方法がありますが、今回はコマンドライン引数を利用します。

コマンドライン引数とは

通常、Javaを実行する際には以下の記述で実行します。

Javaの実行 java クラス名
記述例 java Sample

コマンドライン引数は、クラス名の後に半角スペースを入力後、プログラムに渡したいデータを入力します。複数のデータを渡したい場合は、コマンドライン引数同士を半角スペースで区切ります。(全角スペースではないので注意)

Javaの実行 java クラス名 コマンドライン引数
記述例 java Sample 100
java Sample 100 200

記述例は100というデータを渡す場合と、100と200のデータを渡す場合の実行例となります。

コマンドライン引数をプログラム内で扱う

コマンドライン引数をプログラム内で扱う場合には、main()メソッドの引数を利用します。具体的には以下の部分です。
※メソッドの引数については別の記事で紹介します

public static void main(String[ ] args)

下線部分は、String配列のargsと呼ばれる配列名を利用しています。配列名はargsでなくてもかまいませんが、String配列でなくてはなりません。

args配列を利用して、Java実行時に入力されたコマンドライン引数を扱うことができます。

上図のように、実行時に入力されたデータがargs配列内に格納されます。また、半角スペースで100と200が入力されており、args内には2つのデータが格納されることになります。

コマンドライン引数 サンプルプログラム

以下のプログラムを「Number23.java」という名前でworkフォルダ内に保存します。
保存が完了したら、コマンドプロンプトを起動し、コンパイルおよび実行を行ってみましょう。

実行例

C:\work>javac Number23.java

C:\work>java Number23 100 200
100
200

C:\work>java Number23 100 200 300
100
200

C:\work>java Number23 100
100
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 1
at Number23.main(Number23.java:5)

コンパイルおよび実行例です。実行は3回行っています。

Number23の補足

コマンドライン引数に入力されるデータは実行時までどのようなデータが入力されるかわかりません。

今回、Number23.javaはプログラム内でargs[0]とargs[1]を表示処理しています。コマンドライン引数でデータが2つ以上入力されている場合は問題なく動作します。

しかし、実行時にコマンドライン引数が入力されないもしくは1つしか入力されないと、配列内のデータが扱えないため、実行時にエラーが起こります。

コマンドライン引数で入力されたデータの数を取得する

コマンドライン引数で入力されたデータの数を取得するには、「配列名.length」を利用しargs配列の中に格納されているデータの数で確認できます。

Number23は以下のように変更すると実行時エラーが起こらなくなります。

コマンドライン引数の注意点

コマンドライン引数はString配列を扱うため、数字を入力しても計算処理を行うことができません。
※main()メソッドの引数をint配列に変更してもコンパイルエラーは起こりませんが実行時エラーが発生します

コマンドライン引数で入力されたデータを計算に利用する場合は、Stringをintやdoubleに変換する必要があります。
※変換処理に関しては別途記事で紹介します

コマンドライン引数 復習問題

※コマンドライン引数の配列名はargsとします

問題
  • コマンドライン引数の説明で正しいものを選んでください。
  • コマンドライン引数に100と200を入力した際に、以下のプログラムでどのような結果になるか選んでください。
  • コマンドライン引数に100を入力した際に、以下のプログラムでどのような結果になるか選んでください。
  • コマンドライン引数の数を取得する際の記述で正しいものを選んでください。
  • お疲れ様でした。
解答群
    1. コマンドライン引数は1つしか入力できない
    2. コマンドライン引数はString配列で利用する
    3. コマンドライン引数はint配列に変更することができる
    4. argsという配列名は変更できない
    1. 300が表示される
    2. 100200が表示される
    3. コンパイルエラー
    4. 実行時エラー
    1. 300が表示される
    2. 100200が表示される
    3. コンパイルエラー
    4. 実行時エラー
    1. args.length
    2. args.length()
    3. args.size
    4. args.size()

まとめ

  • コマンドライン引数はString配列で利用する
  • コマンドライン引数では複数のデータを扱うことができる
  • コマンドライン引数の数を取得するには「args.length」
参加 ブログランキング

記事頑張って書いたかもねー?と思う方は下を押してもらえるといいかなーなんて
にほんブログ村 IT技術ブログへ
にほんブログ村


Javaランキング

目次へのアクセス
スポンサーリンク
レクタングル

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル