gpt4 book ai didi

java - Hello world 可以运行,但随后出现没有主线的错误?

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

我在 Java 中有以下简单的 hello world:

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

它按预期工作,但奇怪的是,它给出了一个错误,指出 main 方法在之后不存在。

$ javac A.java && java A
Hello world
Exception in thread "main" java.lang.NoSuchMethodError: main

为什么?我应该忽略它吗?我什至尝试创建一个名为“main”的方法,但它没有任何改变。

class A {
static {
main();
}
public static void main() {
System.out.println("Hello world");
}
}

$ javac A.java && java A
Hello world
Exception in thread "main" java.lang.NoSuchMethodError: main

最佳答案

当您的类被加载时,static 初始化程序将运行,然后 JVM 将尝试调用 main 方法。您可以通过在 static 初始值设定项中再添加一行来解决此问题:

public class HelloWorld {
static {
System.out.println("Look ma', no hands!");
System.exit(0);
}
}

这将在 JVM 尝试调用您的 main 方法之前停止它。

另请注意,这不会在 Java 7 中执行。Java 7 在初始化类之前会查找 main 方法。

关于java - Hello world 可以运行,但随后出现没有主线的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17496829/

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