当 main(String[] args) 是一种方法时,为什么编译器会说 "main class could not be found or loaded"?

Why does the compiler say "main class could not be found or loaded" when main(String[] args) is a method?

以这段代码为例

public class Hello
    {
        static void main(String[] args)
        {
            System.out.println("Hello World");
        }
    }

这里main方法没有写public,编译了class。当我 运行 程序为什么错误读取为 "Could not find or load main class Hello.java".

我的问题是,如果 main(String[] args) 是 'method' 那么为什么要说 'main class'?重点不在于public有没有。关键是我更改了导致 main(string[] args) 对 JVM 不可见的访问修饰符。那么为什么 JVM 说 main class 不是 main() 方法 ?

P.S。如果这是一个愚蠢的问题,那我真的很后悔问这个问题。

编辑:- 这是错误信息

Error: Could not find or load main class Hello.java

这里有两个个问题。

  1. main() 必须声明为 public static void.
  2. 然而真正的问题是你的命令行。明明是

    java Hello.java
    

    应该是

    java Hello
    

    这里没有class Hello.java。 class 的名称是 Hello.