【发布时间】:2018-11-13 05:43:18
【问题描述】:
以这段代码为例
public class Hello
{
static void main(String[] args)
{
System.out.println("Hello World");
}
}
这里,我没有为main方法写public,编译类。当我运行程序时,为什么错误显示为“无法找到或加载主类 Hello.java”。
我的问题是,如果 main(String[] args) 是一个 'method' 那么为什么要说 'main class'?关键不在于 public 存在或不。关键是我更改了导致 main(string[] args) 对 JVM 不可见的访问修饰符。那么为什么JVM会说main class而not main() method呢?
附:如果这是一个愚蠢的问题,那我真的很后悔提出这个问题。
编辑:- 这是错误信息
Error: Could not find or load main class Hello.java
【问题讨论】:
-
main必须是公开的。 -
我认为答案可以在here 中找到——如果您希望 main 可用作程序的入口点(其正常用例),则需要将 main 声明为 public。可以看看吗?
-
不要后悔提出愚蠢的问题。其他人将如何学习? (不是想说这是一个愚蠢的问题)
-
错误信息中使用'main class'字样的原因是JVM试图加载命令行中命名的'main class'却找不到。我不知道为什么这么神秘。