Javaのmainメソッドとは?public static void mainを初心者向けに分解

最終更新日

Schoo Java入門 初級 講座イメージ

本記事は、Schooの「Java入門 初級【2026年版】」第1回「Javaプログラムの書き方と開発環境構築」を学んだあとに、さらに理解を深めたい方向けのステップアップ学習記事です。

ただし、Schooを受講していない方でも、Javaの基本を学び始めたばかりであれば読み進められる内容にしています。

Schoo コースページ:Java入門 初級【2026年版】

mainメソッドはJavaプログラムの入口

Javaを学び始めると、最初のプログラムにmainメソッドが出てきます。最初は長く見えますが、まず覚えることは1つです。

mainメソッドは、Javaプログラムが最初に実行する入口です。

Javaは、どこから処理を始めればよいかを知る必要があります。その目印になるのがmainという名前のメソッドです。

まずは講座で使う基本形を見る

第1回で扱う基本形は、次のようなコードです。

ファイル名:FirstProgram.java

package lesson01;

public class FirstProgram {
    public static void main(String[] args) {
        System.out.println("はじめてのJava!");
    }
}

実行結果

はじめてのJava!

この中で、今回注目するのは次の部分です。

public static void main(String[] args)

長く見えますが、最初からすべてを深く理解する必要はありません。まずは「この行がプログラムの入口を作っている」と理解すれば十分です。

public static void mainを分解する

public static void main(String[] args)は、いくつかの部品に分けて読むと分かりやすくなります。

  • public:外から呼び出せるようにする指定
  • static:クラスから直接呼び出せるようにする指定
  • void:結果を返さないという指定
  • main:プログラムの入口として使われる名前
  • String[] args:起動時に外から渡される文字列の配列

ただし、第1回の段階では、publicstaticを完璧に説明できなくても問題ありません。まずはmainが入口であること、{ }の中に実行したい処理を書くことを押さえましょう。

mainの中に書いた順番で実行される

mainメソッドの中に複数の命令を書くと、基本的には上から順番に実行されます。

ファイル名:FirstProgram.java

package lesson01;

public class FirstProgram {
    public static void main(String[] args) {
        System.out.println("1行目");
        System.out.println("2行目");
        System.out.println("3行目");
    }
}

実行結果

1行目
2行目
3行目

最初のうちは、mainの中が「プログラムが実際に動く場所」だと考えると理解しやすいです。

よくあるつまずき:Mainとmainは別の名前

Javaでは大文字と小文字を区別します。そのため、mainMainと書くと、同じ名前として扱われません。

public static void Main(String[] args) {
    System.out.println("はじめてのJava!");
}

エラーメッセージ例

Main method not found in class FirstProgram

このエラーが出たら、まずmainがすべて小文字になっているかを確認しましょう。

String[] argsは今すぐ使わなくてもよい

String[] argsは、プログラムを起動するときに外から文字列を渡すための入口です。ただし、第1回のようにコンソールへ文字を表示するだけなら、まだ使わなくても問題ありません。

最初は「mainメソッドの決まった形に含まれているもの」として置いておき、後で必要になったときに詳しく学べば十分です。

最新Javaではvoid main()という書き方もある

最近のJavaでは、初学者が最初のプログラムを書きやすくするために、より短い入口の書き方も整備されています。JDK 25では、コンパクトソースファイルとインスタンスmainメソッドにより、次のような書き方が正式化されています。

void main() {
    System.out.println("Hello, World!");
}

これは、最初からpublicstaticString[] argsclassなどをすべて理解しなくても、小さなプログラムを書き始められるようにするための仕組みです。

参考:OpenJDK JEP 512: Compact Source Files and Instance Main Methods

それでも従来型を読めるようにする理由

最新Javaの短い書き方は便利ですが、学習教材、Eclipseのサンプル、既存のJavaコードでは、従来型のpublic static void main(String[] args)が今も多く使われます。

そのため、講座ではまず従来型を読めるようにしておくのが現実的です。全部を暗記するというより、「これはプログラムの入口を作る定型文」として扱い、少しずつ意味を分解していきましょう。

自分で試す練習

  1. FirstProgram.javaを作成し、mainメソッドの中に表示処理を1行書く
  2. System.out.printlnを3行に増やして、上から順番に表示されることを確認する
  3. わざとmainMainに変えて、エラーを確認する
  4. もう一度mainに戻して、正しく実行できることを確認する

確認問題

  1. mainメソッドは、Javaプログラムの中でどのような役割を持ちますか。
  2. voidは、何を返さないことを表していますか。
  3. mainMainと書くと、なぜ問題になりますか。
  4. 最新Javaのvoid main()を知っていても、従来型のpublic static void main(String[] args)を読めるようにしておく理由を説明してください。

演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。先に手を動かしてから確認することをおすすめします。

あわせて読みたい関連記事

まとめ

mainメソッドは、Javaプログラムの入口です。第1回の段階では、public static void main(String[] args)を「ここから処理が始まるための定型文」として読めれば十分です。

最新Javaではvoid main()のような短い書き方もありますが、従来型を読めることは、教材や既存コードを理解するうえで今後も役立ちます。

シェアする