当 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
这里有两个个问题。
main()
必须声明为 public static void
.
然而真正的问题是你的命令行。明明是
java Hello.java
应该是
java Hello
这里没有class Hello.java
。 class 的名称是 Hello
.
以这段代码为例
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
这里有两个个问题。
main()
必须声明为public static void
.然而真正的问题是你的命令行。明明是
java Hello.java
应该是
java Hello
这里没有class
Hello.java
。 class 的名称是Hello
.