【6日でできるJava入門】main()メソッド

 Javaアプリケーションのエントリーポイントはmain()メソッドです。Javaで作成したプログラムは、必ずこのmain()メソッドから実行が開始されます。main()メソッドは、コマンドライン引数(実行時パラメータ)を受け取ることで、プログラムの動作を柔軟に制御できます。ここでは、main()メソッドの基本的な使い方から、引数の扱い、終了処理、ヘルプ表示まで解説します。

1.main()メソッドの基本

1.1. main()メソッドの書式

Javaプログラムの開始点となるmain()メソッドは、次のように定義します。

public static void main(String[] args)
修飾子意味
publicどこからでも呼び出せる。
staticクラスから直接呼び出せる。
void戻り値を返さない
String[]文字列型配列(コマンド引数)

例:最小のmain()メソッド

ファイル名: lesson25_1.java

public class lesson25_1 {
    public static void main(String[] args) {
        System.out.println("こんにちは、Javaの世界!");
    }
}

実行結果

こんにちは、Javaの世界!

1.2. コマンドライン引数の扱い

 main()メソッドの引数String[] argsには、実行時に渡されたパラメータ(スペース区切りで指定)を格納できます。

例えば java Hello arg1 arg2 のように実行すると、

  • args[0]は"arg1"
  • args[1]は"arg2"

になります。

2.コマンドライン引数の活用

2.1. 引数を利用して計算する

コマンドライン引数を使うことで、プログラムの動作を実行時に指定できます。
例:2つの整数値を引数として受け取り、減算結果を表示するプログラム

ファイル名: lesson25_2.java

public class lesson25_2 {
    public static void main(String[] args) {
        if (args.length != 2) {
            System.out.println("使い方: java lesson25_2 <数値1> <数値2>");
            System.exit(1); // 異常終了
        }
        int x = Integer.parseInt(args[0]);
        int y = Integer.parseInt(args[1]);
        System.out.println(x + " - " + y + " = " + (x - y));
    }
}

コマンドラインで実行する場合

> java lesson25_2 10 4
10 - 4 = 6

引数不足時の実行例

> java lesson25_2 10
使い方: java lesson25_2 <数値1> <数値2>

Eclipseで実行する場合

メニューの「実行」→「実行構成」をクリックします。

「引数」のタブで、「プログラムの引数」に「10 4」と入力し、「実行」ボタンをクリックします。

実行結果

10 - 4 = 6

2.2. オプションスタイルのコマンド引数

複数のパラメータをオプション形式で柔軟に指定することもできます。

オプション例説明
-n <値>問題数や回数の指定
-c <値>選択肢数の指定
-hヘルプ表示

例:問題数と選択肢数を指定するプログラム

ファイル名: lesson25_3.java

public class lesson25_3 {
    public static void main(String[] args) {
        int questions = 10;
        int choices = 4;

        for (int i = 0; i < args.length; i++) {
            if (args[i].equals("-n")) {
                questions = Integer.parseInt(args[++i]);
            } else if (args[i].equals("-c")) {
                choices = Integer.parseInt(args[++i]);
            } else if (args[i].equals("-h")) {
                help();
            } else {
                help();
            }
        }
        System.out.println("問題数: " + questions + ", 選択肢数: " + choices);
    }

    static void help() {
        System.out.println("使い方: java QuizConfig [-n 問題数] [-c 選択肢数] [-h]");
        System.exit(1);
    }
}

実行例

Eclipseで実行する場合は、メニューの「実行」→「実行構成」から引数「-n 12 -c 5」を指定します。

> java lesson25_3 -n 12 -c 5
問題数: 12, 選択肢数: 5

> java lesson25_3 -h
使い方: java lesson25_3 [-n 問題数] [-c 選択肢数] [-h]

3.System.exit()でプログラム終了

System.exit(int)は、プログラムを即座に終了させる命令です。

  • 引数に0を指定すると正常終了
  • 0以外は異常終了(エラー終了)
    例:
System.exit(0); // 正常終了
System.exit(1); // 異常終了

4.main()メソッドとヘルプ機能

 コマンド引数に"-h"を指定したときなど、main()メソッド内から補助的なstaticメソッドを呼び出して、使い方や説明文を表示できます。

4.1. staticな補助メソッド

ファイル名: lesson25_4.java

public class lesson25_4 {
    public static void main(String[] args) {
        if (args.length > 0 && args[0].equals("-h")) {
            showHelp();
        } else {
            System.out.println("通常の処理を実行します。");
        }
    }
    static void showHelp() {
        System.out.println("使い方: java lesson25_4 [-h]");
        System.exit(0);
    }
}

実行例

Eclipseで実行する場合は、メニューの「実行」→「実行構成」から引数「-h」を指定します。

> java lesson25_4 -h
使い方: java lesson25_4 [-h]

まとめ

  • main()メソッドはJavaプログラムのエントリーポイント。
  • コマンドライン引数String[] argsで柔軟な制御ができる。
  • System.exit()やstaticな補助メソッドで終了・ヘルプ表示を制御できる。
  • オプションスタイルでパラメータ指定すれば、再コンパイル不要で実行時に設定変更が可能。

主なmain()メソッド関連のまとめ表

項目説明
main書式public static void main(String[] args)
引数取得args[0], args[1], ...
引数数args.length
終了System.exit(0), System.exit(1)
ヘルプ表示例static void help() { ... }

コマンドライン引数例

コマンドラインargs配列の内容
java Helloなし(長さ0)
java Hello Tokyoargs[0]="Tokyo"
java QuizConfig -n 12 -c 5args[0]="-n", args[1]="12", args[2]="-c", args[3]="5"