【Java入門】mainメソッドとその引数(args)、戻り値について解説

50種類以上のIT教材を無料で使える!
0円から学習できるオンラインITスクール「侍テラコヤ」
→さっそく登録する

こんにちは!フリーランスの長野です。

Javaって使ってますか?

Javaのプログラムで必ず記述するのがmainメソッドです。

Javaを使い始めの頃は

public static void main(String[] args)

と呪文のように記述するように教わります。

この記事では、このmainメソッドについて

・mainとは?
・mainメソッドの宣言

という基本的な内容から

・mainメソッドの実行

など応用的な内容についても解説していきます。

今回はmainメソッドについて、わかりやすく解説します!

なお、Javaの記事については、こちらにまとめています。

mainとは?

mainとは、Javaのプログラムを実行する場合に必ず必要なメソッドのことです。

このmainメソッドはクラス内で宣言しますが、mainメソッドを宣言したクラスが実行時に最初に呼び出されます

mainメソッドのないJavaプログラムは以下のようにエラーが発生します。

エラー: メイン・メソッドがクラスHelloで見つかりません。次のようにメイン・メソッドを定義してください。
   public static void main(String[] args)
またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要があります

またmainメソッドの引数、戻り値には必ず守らなければならない決まり事があります。

これらについて詳しく解説していきます!


【何から学べばいいかわからない…そんな悩みを解決します!】

完全無料ですぐわかる「プログラミング学習プラン診断」

・適性にあわせて学習プランを診断
・完全無料で気軽に診断できる
・学習の悩みもまるっと解決

さっそく診断してみる

mainメソッドの宣言

mainメソッドの引数、戻り値、修飾子には必ず守らなければならない決まりごとがあります。

引数、戻り値、修飾子についてそれぞれみていきましょう。

引数

引数にはString型の配列、またはString型の可変長引数を指定する必要があります。

実行時に指定するコマンドライン引数をmainメソッド内で使用するためです。

引数名には「args」一般的によく使われますが、別の引数名でも構いません。

サンプルコードで確認してみましょう。

public class Hello {
    public static void main(String[] args) {
        System.out.println(args[0]);
        System.out.println(args[1]);
    }
}

実行結果:

戻り値

mainメソッドの戻り値はvoidです。

つまりmainメソッドは値を返しません。

mainメソッド内でreturn句を使って値を返すと以下のようにエラーが発生します。

public class Hello {
    public static int main(String[] args) {
        return 1;
    }
}

実行結果:

エラー: メイン・メソッドはクラスHelloのvoid型の値を返す必要があります。
次のようにメイン・メソッドを定義してください。
   public static void main(String[] args)

static修飾子

mainメソッドには必ずstatic修飾子をつける必要があります。

staticメソッドとはnew句を使ってクラスをインスタンス化しなくても呼び出すことができるメソッドです。

mainメソッドは最初に呼び出されるメソッドですので、クラスをインスタンス化せずに呼び出せるようにstaticメソッドである必要があります。

もしstatic修飾子をつけない場合は次のようにエラーが発生します。

エラー: メイン・メソッドがクラスHelloのstaticではありません。次のようにメイン・メソッドを定義してください。
   public static void main(String[] args)

staticメソッドについてはこちらで詳しく解説していますので、ぜひ参考にしてください。

【Java入門】staticメソッドの書き方・使い方まとめ
更新日:2023年3月21日

mainメソッドの実行

mainメソッドが記述されたJavaファイルをコマンドで実行していみましょう。

Javaファイルを実行する前に、javacコマンドでコンパイルする必要があります。

javac mainメソッドが記述されたJavaファイル名.java

コンパイルするとclassファイルが作成されます。

そしてjavaコマンドでmainメソッドが記述されたJavaファイル名(拡張子なし)を指定すると実行できます。

java mainメソッドが記述されたJavaファイル名

コマンドで実行する方法については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【Java入門】コマンドで実行する方法(jarファイルの実行も解説)
更新日:2023年3月21日

【何から学べばいいかわからない…そんな悩みを解決します!】

完全無料ですぐわかる「プログラミング学習プラン診断」

・適性にあわせて学習プランを診断
・完全無料で気軽に診断できる
・学習の悩みもまるっと解決

さっそく診断してみる

まとめ

今回はmainメソッドについて解説してきましたが、いかがでしたか?

mainメソッドは必ず必要で最初に実行されるメソッドです。

またmainメソッドの引数、戻り値、修飾子には決まりがあります。

mainメソッドを呪文のように記述するというよりも、これらの決まりごとを理解して使いこなせるように、この記事を何度も繰り返し参考ににしてくださいね!

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
info@sss-lab.com

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close