『mainメソッドの作成なしでのプログラムの実行』はJava7では動かなかった
で説明されているタイトルのコード
public class Starter {
static {
System.out.println("Hello!");
}
}
を見て私も思いつきました。
public enum Starter {
私の, 名前は, 中野です;
private Starter(){
System.out.println(toString());
}
}
しかしどちらも、Java6では
> java Starter
私の
名前は
中野です
Exception in thread "main" java.lang.NoSuchMethodError: main
のように文字列は表示されるのですが、Java7で実行しようとすると
> java Starter
エラー: メイン・メソッドがクラスStarterで見つかりません。次のようにメイン・メソッドを定義してください。
public static void main(String[] args)
と、スタティックイニシャライザも働いてくれないようです。だからなんだ、と言われると困りますが。[追記: mainが無くてもスタティックイニシャライザが走るJava6の方がおかしかったみたいです…]
« Firefox3ではあったメニューがFirefox4でなくなっている | トップページ | mainメソッドの無いクラスを実行した際にスタティックイニシャライザが呼ばれるのは仕様では無かった »
この記事へのコメントは終了しました。
トラックバック
この記事へのトラックバック一覧です: 『mainメソッドの作成なしでのプログラムの実行』はJava7では動かなかった:
» mainメソッドの無いクラスを実行した際にスタティックイニシャライザが呼ばれるのは仕様では無かった [雪羽の発火後忘失]
昨日のエントリ 『mainメソッドの作成なしでのプログラムの実行』はJava7では動かなかった: 雪羽の発火後忘失 で、mainメソッドが無いクラスをjava.exeで呼んだ時の挙動がときの挙動がJava6とJava7で変わっている、と書きました。また、最後に だからなんだ、と言われると困りますが。 というように書いたのですが、その後この一言が何故か頭から離れませんでした。 そこで、考えを整理する... [続きを読む]
« Firefox3ではあったメニューがFirefox4でなくなっている | トップページ | mainメソッドの無いクラスを実行した際にスタティックイニシャライザが呼ばれるのは仕様では無かった »
コメント