当main(String [] args)是一种方法时,为什么编译器会说“找不到或装入主类”?

use*_*161 2 java program-entry-point

以这段代码为例

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

在这里,我没有为main方法编写public并编译了该类。当我运行程序时,为什么错误显示为“找不到或加载主类Hello.java”。

我的问题是,如果main(String [] args)是一个“方法”,那么为什么要说“主类”呢?这并不是说公众是否存在。关键是我更改了访问修饰符,该修饰符导致main(string [] args)对JVM不可见。那么,为什么JVM为什么说main类不是main()方法呢?

PS:如果这是一个愚蠢的问题,那么我真的很后悔提出这个问题。

编辑:- 这是错误消息

Error: Could not find or load main class Hello.java
Run Code Online (Sandbox Code Playgroud)

use*_*421 5

这里有两个问题。

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

    java Hello.java
    
    Run Code Online (Sandbox Code Playgroud)

    应该是

    java Hello
    
    Run Code Online (Sandbox Code Playgroud)

    这里没有这样的课程Hello.java。该类的名称是Hello