Javaにメインメソッドってあるじゃん。public static void main(string[] args){;}でお馴染みのアレです。 Javaを実行するには、javaコマンドの引数に.classファイルのファイル名を指定するよね。んで、その.classファイルにメインメソッドを含んでいる必要があって、Javaを実行するにはメインメソッドが必須だそうです。このように、参考書やWEBなどあちこちに書いてあります。 しかし、メインメソッド必須というのは、厳密には間違いなんだそうです。メインメソッドが無くてもJavaを動かす裏ワザがあると、↓のブログに書いてありました。(基本はメインメソッドだとは思うのですが) http://blogs.wankuma.com/kacchan6/archive/2007/07/24/86663.aspx ここにプログラムがザックリ書いてあったのですが、本当に動くんですか? public class MimeticMain{ static boolean init = caller(); public static boolean caller(){ System.out.println("main()が無くても動く"); return true; } } -- これを動かすと、「main()が無くても動く」と表示するんですかね。私がやると、エラーになっちゃったのですが。 エラー: メイン・メソッドがクラスMimeticMainで見つかりません。次のようにメイン・メソッドを定義してください。 public static void main(String[] args) ーー あと、staticイニシャライザーを使うと、メインメソッドが無くても動くと、冒頭に書いてあります。自分なりに調べて書いてみたんですが、エラーですね。 public class MimeticMain{ public static void mMain(){System.out.println("main()が無くても動く");} static{mMain();} } メインメソッドが無くても動くって、本当?そのコードを書けますか?10行50ワード以下の簡単なプログラムで良いと思いますが。 2007年のブログらしく、当時の古いバージョンのJavaならば動くのかしら?Javaも仕様がどんどん変わっていて、バージョンアップするとメインメソッド必須になったのかしら?
↧