Javaコマンドライン引数を完全解説!初心者でも理解できる基本ルール
生徒
「Javaプログラムをコマンドで実行するとき、引数ってどう扱うんですか?」
先生
「コマンドライン引数は、Javaプログラムに外部からデータを渡す便利な方法です。これを使うと、プログラムの動作を動的に変えることができますよ。」
生徒
「それなら便利ですね!具体的にどう扱うんですか?」
先生
「では、実際のコードを使いながら説明しますね。」
1. コマンドライン引数の基本
Javaでは、コマンドライン引数を利用してプログラムに外部データを渡すことができます。引数は、mainメソッドのString[] argsに格納されます。
以下は、コマンドライン引数を受け取るプログラムの例です。
public class CommandLineExample {
public static void main(String[] args) {
if (args.length > 0) {
System.out.println("引数が指定されました:");
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + i + "]: " + args[i]);
}
} else {
System.out.println("引数が指定されていません。");
}
}
}
コマンドラインから次のように実行すると、引数を出力します。
> java CommandLineExample apple orange banana
実行結果:
引数が指定されました:
args[0]: apple
args[1]: orange
args[2]: banana
2. コマンドライン引数の動作を確認する
JVMは、コマンドライン引数を受け取ると、これをString[] args配列に格納します。配列のインデックスは、引数の順序を反映しています。たとえば、以下のコードでは、最初の2つの引数を組み合わせて1つのメッセージとして出力します。
public class CombineArguments {
public static void main(String[] args) {
if (args.length < 2) {
System.out.println("2つ以上の引数を指定してください。");
} else {
System.out.println("結合された引数: " + args[0] + " " + args[1]);
}
}
}
コマンドラインで次のように実行します:
> java CombineArguments hello world
実行結果:
結合された引数: hello world
3. コマンドライン引数の注意点
コマンドライン引数を扱う際には、以下の注意点があります。
- 引数が足りない場合、
ArrayIndexOutOfBoundsExceptionが発生する可能性があるため、事前に引数の数をチェックすることが重要です。 - 引数はすべて文字列として受け取られるため、数値や他のデータ型に変換が必要な場合は適切なパース処理を行う必要があります。
- 引数の順序を間違えると意図した動作にならない場合があるため、明確な仕様を設けることが推奨されます。
4. コマンドライン引数の応用例
最後に、引数を使用して簡単な計算を行うプログラムを示します。
public class SumArguments {
public static void main(String[] args) {
if (args.length < 2) {
System.out.println("2つの数値を指定してください。");
return;
}
try {
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
System.out.println("合計: " + (num1 + num2));
} catch (NumberFormatException e) {
System.out.println("数値を正しく入力してください。");
}
}
}
実行例:
> java SumArguments 10 20
合計: 30
このように、引数を使うことでプログラムの柔軟性を高めることができます。
5. まとめ
Javaのコマンドライン引数について学んできました。String[] args配列に格納される引数を使えば、外部からプログラムにデータを渡すことができます。引数の順序や数を正しく扱うことが重要で、ArrayIndexOutOfBoundsExceptionのようなエラーを防ぐために事前チェックが欠かせません。また、文字列として渡される引数を適切な型に変換することも重要です。
以下は、まとめとして、引数を使用してユーザーに応答を返す簡単なプログラム例です。
public class GreetUser {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("名前を指定してください。");
} else {
System.out.println("こんにちは、" + args[0] + "さん!");
}
}
}
実行例:
> java GreetUser 山田
こんにちは、山田さん!
このようなプログラムを応用すれば、入力データに応じて異なる応答を返すインタラクティブなアプリケーションを作成することができます。
生徒
「コマンドライン引数を使うと、プログラムの動作を柔軟に変えられるのが便利ですね!」
先生
「そうです。例えば、ファイル名や設定値を渡すことで、同じプログラムをさまざまな用途に使うことができます。」
生徒
「引数が足りないとエラーになることもあるので、必ずチェックが必要だと分かりました。」
先生
「その通りです。引数が適切かどうかを確認し、エラー処理をしっかり行うことで、使いやすいプログラムを作ることができますよ。」