昨日のエントリ 『mainメソッドの作成なしでのプログラムの実行』はJava7では動かなかった: 雪羽の発火後忘失 で、mainメソッドが無いクラスをjava.exeで呼んだ時の挙動がときの挙動がJava6とJava7で変わっている、と書きました。また、最後に だからなんだ、と言われると困りますが。 というように書いたのですが、その後この一言が何故か頭から離れませんでした。 モヤモヤを解消するため考えを整理することにしました。私は昨日の時点では以下のような認識でした。 static initializerは、クラスがロードされた時点で実行される 。 java.exe Starter というコマンドを実行した時点では、 本当にStarterクラスにmainメソッドが含まれているかどうかわからない。 従って結果がどうであれStarterクラスをロードする必要がある。 実際にはmainメソッドが