4

Core Java 7th edition の Horstmann は、main メソッドなしで Hello, world を表示できると書いています。これは次のように行われます。

public class Hello{
    static{
        System.out.println("Hello, world");
    }
}

彼は、まず Hello, world を書くと言っています。そして、エラーメッセージが表示されます。

私が使う

java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

そして、私はこれをモデル化できません。すでに修正されていますか?

4

2 に答える 2

2

Java 7 より前の JVM では、main() メソッドを検索する前にクラスをロードしていました。

public class Hello{
    static{
        System.out.println("Hello, world");
    }
} 

したがって、これをjava Helloクラスごとに実行すると、最初にロードさHello, worldれて出力されます(静的メソッド/ブロックは、クラスがロードされたときに実行され、クラスが参照されたときにロードされます)。次に、JVM は Hello クラスで main() メソッドを検索し、存在しないためエラーをスローします。ただし、これは Java 7 で修正されています。したがって、Java 7 を使用している場合は、直接エラーが発生します。

于 2013-08-17T10:50:50.203 に答える