gpt4 book ai didi

java - 静态 block 未在 JDK 7 中执行, "Main method not found",但在 JDK 1.5 中有效

转载 作者:太空狗 更新时间:2023-10-29 22:31:14 26 4
gpt4 key购买 nike

我用一个静态 block 写了一个简单的类

class Hello
{

static {
System.out.println("Hello");
System.exit(0);
}
}

当我使用 jdk1.5 运行它时,正在执行静态 block

C:\apps\Java\jdk1.5.0_21\bin>javac Hello.java

C:\apps\Java\jdk1.5.0_21\bin>
C:\apps\Java\jdk1.5.0_21\bin>
C:\apps\Java\jdk1.5.0_21\bin>
C:\apps\Java\jdk1.5.0_21\bin>java Hello

Hello

但是当我使用 jdk1.7 运行它时,出现以下错误

C:\Program Files (x86)\Java\jdk1.7.0_02\bin>
C:\Program Files (x86)\Java\jdk1.7.0_02\bin>javac Hello.java

C:\Program Files (x86)\Java\jdk1.7.0_02\bin>java Hello
Error: Main method not found in class Hello, please define the main method as:
public static void main(String[] args)

谁能知道 JDK 5 和 JDK 7 中的这种行为变化?

提前致谢!

最佳答案

Java 7 在加载类之前寻找 main 方法。这是对以前 Java 版本的行为更改,因此您的静态 block 未执行。 在以前的版本中,JRE 的行为是在加载类后和执行静态 block 后查找 main 方法。

关于java - 静态 block 未在 JDK 7 中执行, "Main method not found",但在 JDK 1.5 中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17500469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com