カテゴリ: JavaSilver試験対策 更新日: 2026/06/06

Javaコマンドライン引数を完全解説!初心者でも理解できる基本ルール

008
Javaコマンドライン引数

先生と生徒の会話形式で理解しよう

生徒

「Javaプログラムをコマンドで実行するとき、引数ってどう扱うんですか?」

先生

「コマンドライン引数は、Javaプログラムに外部からデータを渡す便利な方法です。これを使うと、プログラムの動作を動的に変えることができますよ。」

生徒

「それなら便利ですね!具体的にどう扱うんですか?」

先生

「では、実際のコードを使いながら説明しますね。」

1. コマンドライン引数の基本

1. コマンドライン引数の基本
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. コマンドライン引数の動作を確認する

2. コマンドライン引数の動作を確認する
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. コマンドライン引数の注意点

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

コマンドライン引数を扱う際には、以下の注意点があります。

  • 引数が足りない場合、ArrayIndexOutOfBoundsExceptionが発生する可能性があるため、事前に引数の数をチェックすることが重要です。
  • 引数はすべて文字列として受け取られるため、数値や他のデータ型に変換が必要な場合は適切なパース処理を行う必要があります。
  • 引数の順序を間違えると意図した動作にならない場合があるため、明確な仕様を設けることが推奨されます。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. コマンドライン引数の応用例

4. コマンドライン引数の応用例
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. スペースを含む文字列を1つの引数として渡す方法

5. スペースを含む文字列を1つの引数として渡す方法
5. スペースを含む文字列を1つの引数として渡す方法

コマンドライン引数は通常、スペース(空白)で区切られることで別の配列要素として認識されます。しかし、文章やフルネームのように「スペースを含んだ1つの塊」としてデータを渡したい場面もあります。

そのような場合は、引数をダブルクォーテーション(" ")で囲むことで、1つの引数として扱うことが可能です。


> java CommandLineExample "Java Programming" Hello

実行結果:


引数が指定されました:
args[0]: Java Programming
args[1]: Hello

クォーテーションで囲まないと、"Java" と "Programming" が別々の引数(args[0] と args[1])になってしまうため、文字列データを扱う際は入力形式に注意しましょう。

6. EclipseやIntelliJ IDEAなどのIDEで引数を設定する

6. EclipseやIntelliJ IDEAなどのIDEで引数を設定する
6. EclipseやIntelliJ IDEAなどのIDEで引数を設定する

実際の開発では、ターミナル(コマンドプロンプト)ではなく、EclipseやIntelliJ IDEAなどの統合開発環境(IDE)を使ってプログラムを実行することが多いでしょう。IDE上でも簡単にコマンドライン引数のテストが行えます。

  • Eclipseの場合:「実行構成(Run Configurations)」を開き、「引数(Arguments)」タブの「プログラムの引数」欄に値を入力します。
  • IntelliJ IDEAの場合:「実行構成の編集(Edit Configurations)」を開き、「プログラム引数(Program arguments)」欄に値を入力します。

この設定を行うことで、ソースコードを書き換えることなく、実行ボタンを押すだけで特定の引数を渡した状態の動作確認ができるようになります。

7. 実務でよく使われる引数の活用シーン

7. 実務でよく使われる引数の活用シーン
7. 実務でよく使われる引数の活用シーン

コマンドライン引数は、プログラミング学習だけでなく、実務のシステム運用でも非常に重要な役割を果たします。代表的な活用例は以下の通りです。

  • 設定ファイルの切り替え: 実行時に「dev(開発環境)」や「prod(本番環境)」という引数を渡し、読み込むデータベースの設定を動的に変更する。
  • バッチ処理のパラメータ: 大量データを処理するプログラムに「処理対象の日付」や「ファイルパス」を引数として渡し、特定のデータだけを加工する。
  • パスワードやAPIキーの受け渡し: プログラム内に直接書き込みたくない機密情報を、実行時の引数として外部から注入する。

このように、コマンドライン引数をマスターすることで、汎用性が高く、メンテナンスのしやすいプロフェッショナルなJavaプログラムを作成できるようになります。

まとめ

まとめ
まとめ

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 山田
こんにちは、山田さん!

このようなプログラムを応用すれば、入力データに応じて異なる応答を返すインタラクティブなアプリケーションを作成することができます。

先生と生徒の振り返り会話

生徒

「コマンドライン引数を使うと、プログラムの動作を柔軟に変えられるのが便利ですね!」

先生

「そうです。例えば、ファイル名や設定値を渡すことで、同じプログラムをさまざまな用途に使うことができます。」

生徒

「引数が足りないとエラーになることもあるので、必ずチェックが必要だと分かりました。」

先生

「その通りです。引数が適切かどうかを確認し、エラー処理をしっかり行うことで、使いやすいプログラムを作ることができますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Javaのコマンドライン引数とは何ですか?初心者向けに教えてください。

Javaのコマンドライン引数とは、プログラムを起動する際に外部からデータを渡す仕組みで、mainメソッドのString[] argsに格納されます。起動時に入力した値をプログラム内で使えるようになります。

Javaでコマンドライン引数を受け取るにはどうすればいいですか?

Javaではmainメソッドの引数としてString[] argsを使うことで、コマンドラインから渡された引数を受け取ることができます。args配列の各要素に引数が順番に格納されます。

Javaのコマンドライン引数はどのような形式で渡しますか?

コマンドライン引数は、java クラス名 引数1 引数2…のようにスペースで区切って渡します。各引数は文字列としてmainメソッドに渡されます。
JavaSilver試験対策の一覧へ
新着記事
Java
Javaの演算子の優先順位
Javaの演算子の優先順位を完全解説!初心者向けの丁寧な解説
Java
Javaのローカル変数と順次処理
Javaのローカル変数と順次処理を徹底解説!初心者でも理解できるコードの基本
Python
NumPyのdtype一覧!int・float・bool・str・objectの違いを比較
NumPyのdtype一覧を完全解説!int・float・bool・str・objectの違いを初心者向けに比較
Dart
Dartのコンストラクタまとめ!デフォルト・名前付きコンストラクタの使い方
Dartのコンストラクタまとめ完全ガイド!デフォルトコンストラクタと名前付きコンストラクタの使い方を初心者向けに解説
人気記事
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
Flutter
Flutter SDKのダウンロードとインストール手順を詳しく解説
Flutter SDKのダウンロードとインストール手順を丁寧ガイド!初心者でも安心な環境構築

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク