mainメソッド

読み:メインメソッド
外語:main method 英語
品詞:名詞

Javaで作成されたアプリケーションを起動するさい、最初に呼び出されるメソッド。メインルーチンを記述する場所。

目次

mainメソッドには、次のような決まりごとがある。

  • public宣言されていること。
  • static宣言されていること。
  • 返却値はvoidであること。
  • 引数はString型の配列である。

一般的には、次のように記述される。

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

ただ、publicとstaticは逆に書いても同義であり、また変数名argsは慣例に過ぎず実際には何でも良い。

引数

引数は文字列の配列として与えられる。

変数名をargsとすると、要素数はlengthメソッドで得られる。つまり「args.length」である。

また文字列は、1番目はargs[0]、2番目はargs[1]、のようにして得る。

必須ではない

javaコマンドはmainメソッドを実行しようとするが、Javaのクラスローディング仕様上はmainメソッドは必須ではない。

常識的なプログラムではmainメソッドを書くので、このようなことは考える必要自体通常はないが、mainメソッドがなくてもコンパイルすることができ、技巧さえ凝らせばmainメソッドが無くてもプログラムは動く。

あるクラスが起動されるさいには、クラスのmainメソッドが探される。メソッドを探すためには、まずクラスのローディングが行なわれるが、このときstaticイニシャライザーがあれば、それが(mainメソッドの有無を問わず)実行される。

そしてstaticイニシャライザー内で新しいスレッドを作成し、そのスレッドから任意のメソッドを呼べば、mainメソッドが無くてもクラスは実行されるということになる。

通常、mainメソッドが無ければ、JVMはNoSuchMethodException例外をスローする。結果、メインのスレッドはNoSuchMethodExceptionで終了してしまうが、終了する前に非デーモンスレッドを作成してしまえば、それが動作し続けるのである。

関連する用語
main関数

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club