Java – mainメソッドの(string[] args)の意味を解説
Javaのmainメソッドの引数String[] argsは、プログラム実行時にコマンドラインから渡される引数を受け取るためのものです。
argsは文字列の配列で、各要素にコマンドライン引数が格納されます。
例えば、java MyProgram arg1 arg2と実行すると、args[0]に"arg1"、args[1]に"arg2"が格納されます。
mainメソッドとは何か
Javaプログラムの実行は、常にmainメソッドから始まります。
このメソッドは、Javaアプリケーションのエントリーポイントとして機能し、プログラムが開始される場所を示します。
mainメソッドは、特定のシグネチャを持っており、以下のように定義されます。
public static void main(String[] args) {
    // プログラムの処理がここに書かれます
}mainメソッドの構成要素
- public: アクセス修飾子で、他のクラスからもアクセス可能であることを示します。
- static: インスタンス化せずに呼び出せることを示します。
つまり、mainメソッドはクラスがロードされたときに実行されます。
- void: 戻り値がないことを示します。
mainメソッドは何も返しません。
- String[] args: コマンドライン引数を受け取るための配列です。
プログラム実行時に外部からデータを渡すことができます。
このように、mainメソッドはJavaプログラムの実行において非常に重要な役割を果たしています。
String[] argsの基本的な意味
String[] argsは、Javaのmainメソッドにおいて非常に重要な役割を果たす引数です。
この部分は、コマンドライン引数を受け取るための配列として機能します。
具体的には、プログラムを実行する際に、ユーザーが指定した引数を格納するためのものです。
コマンドライン引数の役割
- データの受け渡し: プログラム実行時に外部からデータを渡すことができます。
これにより、プログラムの動作を柔軟に変更できます。
- 設定の指定: プログラムの動作に関する設定をコマンドラインから指定することができます。
たとえば、ファイル名やオプションを引数として渡すことが可能です。
以下のサンプルコードは、コマンドライン引数を受け取り、その内容を表示するプログラムです。
public class App {
    public static void main(String[] args) {
        // 引数の数を表示
        System.out.println("引数の数: " + args.length);
        
        // 各引数を表示
        for (int i = 0; i < args.length; i++) {
            System.out.println("引数[" + i + "]: " + args[i]);
        }
    }
}このプログラムを実行する際に、コマンドラインで引数を指定すると、指定した引数が表示されます。
たとえば、以下のように実行します。
java App Hello World引数の数: 2
引数[0]: Hello
引数[1]: Worldこのように、String[] argsを使用することで、プログラムに外部からデータを渡し、動的に処理を行うことが可能になります。
コマンドライン引数の使い方
コマンドライン引数は、Javaプログラムに外部からデータを渡すための便利な手段です。
これにより、プログラムの動作を実行時に変更することができます。
以下では、コマンドライン引数の使い方について詳しく解説します。
コマンドライン引数の取得
コマンドライン引数は、String[] args配列を通じて取得します。
引数は、プログラム実行時にスペースで区切って指定します。
引数の数はargs.lengthで取得でき、各引数はargs[i]でアクセスできます。
引数の型変換
コマンドライン引数はすべて文字列として渡されるため、必要に応じて型変換を行う必要があります。
たとえば、整数や浮動小数点数として扱いたい場合は、Integer.parseInt()やDouble.parseDouble()を使用します。
以下のサンプルコードは、コマンドライン引数を受け取り、数値の合計を計算するプログラムです。
public class App {
    public static void main(String[] args) {
        int sum = 0; // 合計を格納する変数
        // 引数を整数に変換して合計を計算
        for (String arg : args) {
            sum += Integer.parseInt(arg); // 文字列を整数に変換
        }
        // 合計を表示
        System.out.println("合計: " + sum);
    }
}このプログラムを実行する際に、コマンドラインで数値を指定すると、その合計が表示されます。
たとえば、以下のように実行します。
java App 10 20 30合計: 60このように、コマンドライン引数を利用することで、プログラムに動的なデータを渡し、さまざまな処理を行うことができます。
引数の型変換を適切に行うことで、より柔軟なプログラムを作成することが可能です。
String[] argsの応用例
String[] argsを活用することで、Javaプログラムはより柔軟でインタラクティブな動作を実現できます。
ここでは、具体的な応用例をいくつか紹介します。
ファイル操作
コマンドライン引数を使用して、ファイル名を指定し、そのファイルを読み込むプログラムを作成できます。
以下のサンプルコードは、指定されたファイルの内容を表示するプログラムです。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class App {
    public static void main(String[] args) {
        if (args.length < 1) {
            System.out.println("ファイル名を指定してください。");
            return;
        }
        String fileName = args[0]; // 引数からファイル名を取得
        try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line); // ファイルの内容を表示
            }
        } catch (IOException e) {
            System.out.println("ファイルの読み込みに失敗しました: " + e.getMessage());
        }
    }
}このプログラムを実行する際に、コマンドラインでファイル名を指定します。
java App sample.txt計算機プログラム
コマンドライン引数を使って、簡単な計算機プログラムを作成することもできます。
以下のサンプルコードは、2つの数値と演算子を受け取り、計算結果を表示します。
public class App {
    public static void main(String[] args) {
        if (args.length < 3) {
            System.out.println("使用法: java App <数値1> <演算子> <数値2>");
            return;
        }
        double num1 = Double.parseDouble(args[0]); // 1つ目の数値
        String operator = args[1]; // 演算子
        double num2 = Double.parseDouble(args[2]); // 2つ目の数値
        double result = 0; // 結果を格納する変数
        switch (operator) {
            case "+":
                result = num1 + num2;
                break;
            case "-":
                result = num1 - num2;
                break;
            case "*":
                result = num1 * num2;
                break;
            case "/":
                result = num1 / num2;
                break;
            default:
                System.out.println("無効な演算子です。");
                return;
        }
        System.out.println("結果: " + result); // 計算結果を表示
    }
}このプログラムを実行する際に、数値と演算子を指定します。
java App 10 + 5結果: 15.0これらの例からもわかるように、String[] argsを利用することで、Javaプログラムは外部からの入力を受け取り、さまざまな処理を行うことができます。
ファイル操作や計算機能など、実用的なアプリケーションを作成する際に非常に役立ちます。
まとめ
この記事では、JavaのmainメソッドにおけるString[] argsの役割や使い方について詳しく解説しました。
コマンドライン引数を活用することで、プログラムに外部からデータを渡し、動的な処理を実現することが可能です。
これを機に、実際にコマンドライン引数を利用したプログラムを作成し、さまざまな機能を試してみることをお勧めします。
 
![[Java] コマンドライン引数をオプションのように扱う方法](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51287.png)
![[Java] 受け取ったコマンドライン引数の数値をint型変数に格納する方法](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51286.png)
![[Java] コマンドライン引数をfor文で全て取得する方法](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51285.png)
![[Java] 複数のコマンドライン引数を扱う方法](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51291.png)
![[Java] コマンドライン引数の一部を配列化する](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51290.png)
![[Java] コマンドライン引数がない場合の処理を実装する方法](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51288.png)
![[Java] コマンドライン引数のargsとは?引数の使い方を解説](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51284.png)
![[Java] Streamのメソッドチェーンについてわかりやすく解説](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51283.png)
![[Java] mainメソッドが戻り値を持たない理由を解説](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51282.png)
![[Java] mainメソッドを複数定義するとどのmainが呼ばれる?](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51281.png)