Developer

【はじめてのJava】mainメソッドのエラー一覧【コラム】
2020.09.29
Lv1

【はじめてのJava】mainメソッドのエラー一覧【コラム】

はじめてのJava

このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。


コラム

コラムでは本編の補足などをしていきます。

うまく動かないときの対処法一覧の記事ではよくある問題とその解決方法を説明しましたが、この記事ではmainメソッドの書き方が正しくないときの問題点をまとめます。

特にJavaの試験を受ける場合は ★がついているパターンは必須レベル なので問題を解く際には必ず確認してください。

Javaのプログラム作成時の記事はこちら
エラーメッセージについての記事はこちら


目次


mainメソッドの問題

Javaのmainメソッドは書き方が決まっているおり、それを守らない書き方になっていると問題が発生します。問題の場所によってコンパイルエラーになったり、実行しても実行に失敗したりします。

以下によくあるmainメソッドの記載例と実行の可否を載せました。

キーワードが欠けている場合

記載例 コンパイル/実行の結果 備考
public static void main(String[] args){ } ○実行可能 通常のmainメソッドです。
static void main(String[] args){ } ×実行できない★ publicがない場合は
コンパイルは可能ですが
実行に失敗します。
public void main(String[] args){ } ×実行できない★ staticがない場合は
コンパイルは可能ですが
実行に失敗します。
public static main(String[] args){ } ×コンパイルエラー★ voidがない場合は
コンパイルエラーになります。
public static void main(String args){ } ×実行できない★ Stringの後ろの[]が無い場合は
コンパイルは可能ですが
実行に失敗します。
public static void main([] args){ } ×コンパイルエラー Stringがない場合は
コンパイルエラーになります。
public static void main(String[] ){ } ×コンパイルエラー String[]の後ろに何もない場合は
コンパイルエラーになります。

まとめると以下の通りです。コンパイルエラーと実行できないの両方に当てはまる場合はコンパイルエラーになります。

★publicがない→実行できない
★staticがない→実行できない
★voidがない→コンパイルエラー
★[]がない→実行できない
・Stringがない→コンパイルエラー
・String[]の後ろに何もない→コンパイルエラー


つづりが間違っている場合

記載例 コンパイル/実行の結果 備考
public static void main(String[] args){ } ○実行可能 通常のmainメソッドです。
Public Static Void main(sring[] args){ } ×コンパイルエラー public,static,void,Stringは
1文字でも違うと
コンパイルエラーになります。
public static void Main(Sring[] args){ } ×実行できない mainは
1文字でも大文字小文字が違うと
コンパイルは可能ですが
実行に失敗します。
public static void main(Sring[] a){ } ○実行可能 argsについては
つづりが違っていても
命名規則さえ守っていれば
問題なく実行可能です。

まとめると以下の通りです。コンパイルエラーと実行できないの両方に当てはまる場合はコンパイルエラーになります。

・publicの綴りが違うがない→コンパイルエラー
・staticの綴りが違う→コンパイルエラー
・voidがない→コンパイルエラー
・mainの綴りが違う→実行できない
・Stringの綴りが違う→コンパイルエラー
・argsの綴りが違う→命名規則さえ守っていれば実行可能


その他

記載例 コンパイル/実行の結果 備考
public static void main(String[] args){ } ○実行可能 通常のmainメソッドです。
public static void main(String args[]){ } ○実行可能★ []の位置がargsの後ろですが
実行可能です。
public static void main(String[] args[]){ } ×実行できない []が2つ以上あると
実行に失敗します。
public static void main(String... args){ } ○実行可能 []が...に変わっていますが
実行可能です。
※可変長引数というものです。
public static void main(String args...){ } ×コンパイルエラー ...がStringではなく
argsの後ろについている場合
コンパイルエラーです。

★[]の位置がargsの後ろに移動している→実行可能
・[]が2つ以上ついている→実行できない
・String...となっている→実行可能
・args...となっている→コンパイルエラー

ポイント

mainメソッドの注意点のうち、特に重要なものは以下の通り。

★publicがない→実行できない
★staticがない→実行できない
★voidがない→コンパイルエラー
★[]がない→実行できない
・大文字小文字やつづりの違いに注意する
★[]の位置がargsの後ろに移動している→実行可能


はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編
データ型と変数編


java 11 の練習問題一覧はこちら
はじめてのJavaシリーズの練習問題一覧はこちら