質問: コンパイルエラーと実行時エラー、どちらが発生するのか、区別がつきません。 例えば以下の12について、どうして1は実行時エラーで、2はコンパイルエラーとなるのかがわかりません。(どちらも同じような個所から1単語抜いただけなのに) 1mainメソッドから static を外した場合、コンパイルはできるが実行時エラーとなる ■ソースファイル public class Sample1_1_3 { public void main(String[] args) { System.out.println("Hello!"); } } ■コマンドプロンプト c:\sample\chap01>javac Sample1_1_3.java c:\sample\chap01>java Sample1_1_3 エラー: メイン・メソッドがクラスSample1_1_3のstaticではありません。次のようにメ イン・メソッドを定義してください。 public static void main(String[] args) 2mainメソッドから void を外した場合、コンパイルエラーとなる ■ソースファイル public class Sample1_1_4 { public static main(String[] args) { System.out.println("Hello!"); } } ■コマンドプロンプト c:\sample\chap01>javac Sample1_1_4.java Sample1_1_4.java:2: エラー: 無効なメソッド宣言です。戻り値の型が必要です。 public static main(String[] args) { ^ エラー1個 以上、ご教示のほどよろしくお願いいたします。
回答: 文法的におかしいのはコンパイルエラーとなります 文法的にあってるんだけど、実行時におかしいのは実行時エラーとなりますね 区別がつかないというのは、まだJAVAの文法をしっかり習得してないからですね