トップ 言語 Java クラス、メソッド、インターフェース Javaのメソッドとは mainメソッド、コンストラクタ、命名規則 Javaのmainメソッドとは

Javaのmainメソッドとは―実行方法、引数、特定のクラスのmain実行など

実行方法、引数、特定のクラスのmain実行など。Javaのmainメソッドとは何かについてまとめています。

Javaのmainメソッドとは

Javaのmainメソッドとは、作成したJavaのプログラムを実行するときに最初に呼び出されるメソッドです。

Javaのプログラムを実行する際にはjavaコマンドを使用します。 このコマンドを使用すると、引数で指定したクラスをJVM(Java仮想マシン)がロードし、このクラスのmain()メソッドを呼び出します。 つまり、Javaアプリケーションのクラスにおけるmain()メソッドは、実行を制御するためのスタート地点となります。

Javaプログラムには必ずmainメソッドが必要ですが、意識して作らないケースもあります。 たとえば、TomcatなどにのせるWebアプリケーションを作成する場合は、Javaプログラムの一部をわれわれはつくります。 Tomcat側にmainメソッドが実装されているので、mainメソッドは作成する必要はありません。 作成してもTomcatから呼び出されないです。

mainメソッドのシグニチャとpublic、static、void、String[] argsの意味

mainメソッドの形は、以下のようにpublicでstatic、戻り値はvoidで、引数はString型の配列とJavaの仕様で決められています。 ここではこれらのキーワードの意味についてまとめていきます。

public static void main(String[] args)){
:
}

mainメソッドの実行とコマンドライン引数を受け取る

実際に例を見てみると分かりやすいと思います。 ここでは、コマンドライン引数を受け取る例を見てみます。

サンプルプログラム

class Sample {
    public static void main(String[] args) {
        System.out.println("args.length : " + args.length);
        for (int i = 0; i < args.length; i++) {
            System.out.println("args[" + i + "] : " + args[i]);
        }
    }
}

コンパイル

javac Sample.java

実行

実行は「java Sample <引数1> <引数2> ・・・」のように実行します。

java Sample 1 2 3
args.length : 3
args[0] : 1
args[1] : 2
args[2] : 3

説明

サンプルプログラムの実行結果を見ると分かるように、 コマンドラインから与えられた引数「1 2 3」は、String[]に0番目要素から順番に設定されます。 C言語では、一番最初にプログラム名が設定されますが、Javaの場合は引数の先頭から設定されます。

javaコマンドでのmainのあるクラスを指定して実行

サンプルのように1つのJavaクラスだけで作られたプログラムを実行する場合は問題になりませんが、 大きくなって複数のJavaクラスとなって、クラスファイルをアーカイブにまとめたjarファイルをロードする場合や mainメソッドをもったクラスが複数ある場合など、javaコマンド実行時にちゃんと教えてあげる必要があります。

こうしたときを想定して、Javaコマンドの実行の参考として、もうちょっとjavaコマンドのオプションを入れた実行例を見てみます。

例えば、以下のようなオプションと引数を指定してjavaコマンドを実行します。

java -Dfile.encoding=UTF-8 -classpath <jarファイル> -XmxXXXM -XmsXXM -XX:PermSize=XXXm -XX:MaxPermSize=XXXm <パッケージ.クラス名> <コマンドライン引数>

もっと知識を広げるための参考

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Bcc /Eclipse /gcc /gdb /g++ /JDK /JUnit /ZAP

技術・仕様
Ajax /CORBA /Java EE(旧称J2EE) /JNI

ライブラリ/Framework/CMS
jQuery /Lucene /MyBatis /RESTEasy /Spring /Struts /Seasar2 /WordPress

ITインフラ OSとミドルウェア
Linux /Windows /シェル
Apache/Tomcat /MySQL /Redis /Solr /vsftpd

ITインフラ PC 製品
ZOTAC

ITインフラ サーバー
Web公開サーバー構築

ITインフラ ネットワーク
プログラミング /機器 /構築

ITインフラ セキュリティ
公開サーバーのセキュリティ

SI
ホームページの作り方 /小さな会社のISMS

その他
IT用語 /ITスキル体系 /トレンド履歴

スポンサーリンク