日々常々

ふつうのプログラマがあたりまえにしたいこと。

Java7でmainメソッド無いクラスが実行できなくなった

前書いた気がするんだけど見当たらないから書いておきますね。

PS> java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
PS> cat Main.java
class Main {
static {System.out.println("Hello");}
}
PS> javac Main.java
PS> java Main
エラー: メイン・メソッドがクラスMainで見つかりません。次のようにメイン・メソッドを定義してください。

   public static void main(String[] args)
PS>


ちなみに Java6 だと。

PS> java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)
PS> javac Main.java
PS> java Main
Hello
Exception in thread "main" java.lang.NoSuchMethodError: main
PS>

mainメソッドは無いって怒られるけど実行自体はできたんですよねー。



探してみた。このTweetでした。

『mainメソッドの作成なしでのプログラムの実行』はJava7では動かなかった: 発火後忘失

つぶやいて満足してるパターンですね。やれやれ…。