この記事では、eclipseで「コマンドライン引数に入力されたデータを扱う方法」 を紹介します。
プログラムを勉強すると、まずは決まった値をコードの中で扱うことが多いですよね。
しかし、時には入力された値に応じて結果を変えるようなコードがあると便利です。
入力値を扱う方法はいくつかありますが、その中でも基礎的な方法としてコマンドライン引数をご紹介します。
※前提として環境はeclipse2020で実行になります。
まずは次のサンプルをコーディングしてみましょう。
【ArgsSample.java】
1 2 3 4 5 6 7 8 |
class ArgsSample { public static void main(String[] args) { String message; message = "さん、こんにちは。"; message = args[0] + message; System.out.println(message); } } |
なお、今回のサンプルではコマンドライン引数があることを前提としたプログラムになっているので、コマンドライン引数に何も記述することなく実行してしまうと下記のような例外が発生しますので、ご注意ください。
【実行結果】
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 0
at ArgsSample.main(ArgsSample.java:5)
コマンドライン引数を指定した実行
今までは、プログラムの中で、データを作成してそのまま使っていました。
実用的なアプリケーションを作成するようになると、入力されたデータを扱えるような仕組みが必要になります。
ここでは、テスト用として用意されているmain() メソッドの機能 (コマンドライン引数) を利用して、入力されたデータを扱うプログラムを作成していきます。
Javaでは、コマンド実行時にコマンドラインに入力された文字列 (String) データを取得するために、main() メソッドの機能を使用することができます。
1 |
public static void main(String[] args) |
main() メソッドとして記述する1文の () 内には、コマンド実行時にmain() メソッドが取得できるデータの種類として【String[] args】と記述することになっており、入力されたデータはString型の配列として取り扱うことができます。
eclipseでのコマンドライン引数の利用
それでは、[ArgsSample.java]の上で右クリックし、表示されたメニューより[実行(R)]をクリックし、表示されたサブメニューより[実行の構成(N)…]をクリックします。
『実行構成』画面の『引数』タブを選択して、[プログラムの引数(A):]に[山田花子]と入力して、[実行(R)]ボタンをクリックします。
【実行結果】
山田花子さん、こんにちは。
プログラムの引数に、半角スペースで区切って入力したデータは、String型の配列argsに引数として代入され、アプリケーション内で扱えるようになります。
String型の配列argsの要素数は、コマンドラインから入力するデータの数です。
今回は、5 行目で args[0] を使用しています。args[0] には、先ほど入力した文字が格納されています。コマンドラインから入力したデータが、String型の配列argsで扱われているのがわかります。
終わりに
この記事では、eclipseで「コマンドライン引数に入力されたデータを扱う方法」をご紹介しました。
慣れてくると「もっとこっちの方がいいぞ!」と思える書き方が見つかると思うので、どんどん変えていってください。
ぜひ「自分なりのプログラムの書き方テンプレート」を磨き上げてみてください。