すずろぐ

人生大逆転を目指す、鈴木俊吾の成長日記

Java NetBeansでコマンドライン引数を複数指定して実行する方法

NetBeans

こんにちは、すずしんです。

Javaのプログラムを作成するときに、実行時に引数を渡して処理したい時がありますよね?
コンソールを使って実行させるなら、引数を直接指定できますが…。
もしIDEを使っているなら、そのままでは引数を指定することができません。
IDEでプログラムを実行する時に引数を渡すためには、あらかじめ設定をしておく必要があります。

そこで、今回の記事では、NetBeansコマンドライン引数複数指定してプログラムを実行する方法について書いてみます。
ついでに、受け取ったコマンドライン引数の簡単な扱い方についても解説します。

コンソール上でコマンドライン引数を指定する方法

仮に、コマンドライン引数を受け取るプログラムを「CommandLine.java」とします。
コンパイルするときには「javac」を使いますね。
コンパイルが終了すると、「CommandLine.class」ファイルが作成されます。

javac CommandLine.java

このプログラムを実行するときにコマンドライン引数を渡すには…。
「java」コマンドに続いてプログラム名を指定した後に、スペース区切りで与えたい文字列を入力します。

例えば、「Hello」と「World」をコマンドライン引数に渡したい場合は以下のようにします。

java CommandLine.class Hello World

ちなみに、「Hello World」というスペースが入った文字列を指定したい場合には、その文字列をダブルクォーテーションで囲みます。
つまり、以下のように指定します。

java CommandLine.class "Hello World"

NetBeansでコマンドライン引数を指定する方法

NetBeansでコマンドライン引数を指定するには…。
まず、「デフォルト構成」と表示されている部分をクリックします。
すると、「カスタマイズ」という項目が表示されますので、それをクリックしてください。

NetBeans - カスタマイズ

プロジェクト・プロパティ画面が表示されます。
「メイン・クラス」に、実行したいプログラムが指定されているのを確認します。
そして、「引数」に、与えたいコマンドライン引数をスペース区切りで入力してください。
その後「OK」をクリックすれば、設定は完了です。

NetBeans - プロジェクト・プロパティ

プログラムの実行は、▶ボタンをクリックするかF6ボタンを押します。
これで、プログラムがコマンドライン引数を与えられた状態で実行されます。

コマンドライン引数の受け取り方

コマンドライン引数は、mainメソッドの引数であるargsの中に格納されています。
argsは配列になっていて、0番目に最初の引数、1番目に次の引数…というように順番に入っています。
引数の数は「args.length」で分かります。

サンプルプログラム

このサンプルプログラム(Args.java)は、入力されたコマンドライン引数の内容を全て表示するというものです。
for文でループしながら、argsの内容をSystem.out.printf()メソッドで表示させています。

package jp.suzushin7.sample;

public class Args {
    public static void main(String[] args) {
        for(int i = 0; i < args.length; i++) {
            System.out.printf("args[%d]: %s%n", i, args[i]);
        }
    }
}

実行結果

上記サンプルプログラムの実行結果の例は以下のようになります。
コマンドライン引数に「Hello World 1 2 3 4 5」を与えた場合には、このような結果になります。

args[0]: Hello
args[1]: World
args[2]: 1
args[3]: 2
args[4]: 3
args[5]: 4
args[6]: 5

ひとこと

今回の記事では、NetBeansでコマンドライン引数を指定してプログラムを実行する方法について書いてみました。
実際やってみると分かりますが、引数に指定するだけですので難しいということはないですよね。

「コマンドライン引数は、プロジェクト・プロパティ画面から指定する。」
「プログラム上では、受け取ったコマンドライン引数はargsに格納されている。」
以上の事を覚えておけば問題無いです。

コマンドライン引数を使う事で、プログラムの処理を柔軟に切り替えることができますので…。
ぜひあなたもコマンドライン引数を使ったプログラムを作成してみてくださいね。