Javaのmainメソッドの書き方【初心者向け】
初心者向けにJavaのmainメソッドの書き方について解説しています。これはJavaプログラムを実行する際に最初に呼び出されるものです。mainメソッドの書き方を修飾子の役割も含めて理解し、Javaプログラム実行の仕組みを実際に書きながら覚えていきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Javaのmainメソッドの書き方について解説します。
実際にプログラムを書いて説明しているので、ぜひ理解しておきましょう。
そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
mainメソッドの書き方について詳しく説明していくね!
お願いします!
mainメソッドとは
mainメソッドは、Javaプログラムの入り口です。
例えば、あなたが「MyProgram」という名前のプログラムを作り、それを実行したいとします。
java MyProgram
Javaプログラムを実行するときは、コマンドプロンプトなどで「java プログラム名(クラス名)」と入力します。
このとき、「MyProgram」の中身のどの位置からプログラムが開始されるのか?を明確に指定しなければいけません。Javaでは、これを「mainメソッド」を定義することにより実現します。
mainメソッドの書き方
mainメソッドの書き方は、Javaの言語仕様により厳密に定義されています。
かならずこの通りに記述しないといけません。
public static void main(String[] args) { (実際の処理内容をここに書く) }
- アクセス修飾子:必ずpublicとします。
- static修飾子:必ず指定します。ちなみにstaticが付いたメソッドのことを「staticメソッド」「静的メソッド」または「クラスメソッド」と呼びます。
- 戻り値:必ずvoidを指定します。「void」は戻り値を返さないという意味です。
- メソッド名:すべて小文字で「main」とします。
- 引数:String型の配列をひとつ、引数として定義します。引数名は必ずしも「args」である必要はありませんが、慣習としてこの名前がよく使われます。
実際に書いてみよう
それでは実際にmainメソッドを定義したJavaプログラムを実行してみましょう。
- 注意事項1:JDKをインストールしていることが前提です。バージョンは問いません。
- 注意事項2:コマンドプロンプト(Macの場合はターミナル)の使い方がわからない場合は、インターネットなどで調べてみましょう。
テキストエディタで以下のファイルを作成し、Greeting.javaという名前で保存してください。
class Greeting { public static void main(String[] args) { System.out.println("Hello, " + args[0]); } }
コマンドプロンプトを開き、Greeting.javaを保存したフォルダに移動しましょう。
その後、次のコマンドを実行しJavaプログラムをコンパイルします。
javac Greeting.java
コンパイルが成功したら、次のコマンドでJavaプログラムを実行します。
java Greeting Bob
コマンドプロンプトに「Hello, Bob」と出力されたら成功です。
javaコマンドにはプログラム名(クラス名)を指定しただけですが、確かにmainメソッドが呼び出されていますね。javaコマンドで渡した引数「Bob」もmainメソッドの引数で受け取れています。
うまくいったら、今度は試しにGreetingクラスのmainメソッドの名前を「Main」(先頭大文字)に修正したうえで、同じ手順でコンパイル、実行してみてください。
Mainメソッドが見つからないことを示す、次のようなエラーがが表示されるでしょう。
java.lang.NoSuchMethodError: main Exception in thread "main"
監修してくれたメンター
青柳哲夫
独立系SIerやベンチャーを経て、現在はフリーランスエンジニアとして活動しています。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。