Java程序入口点是public static void main(String[] args),JVM仅识别此签名;修饰符顺序、static、void、String[]参数缺一不可;可重载但仅标准版被调用;命令行参数按空格分割存入args数组。

Java 的 main 方法是程序的入口点,JVM 启动时会查找并执行它。必须严格满足签名要求,否则编译或运行会失败。
main 方法的正确写法
标准格式只有一种(忽略参数名和换行):
public static void main(String[] args)
- public:必须公开,让 JVM 能访问
- static:无需实例化类就能调用
- void:返回值固定为 void,JVM 不处理返回结果
-
String[] args:参数名可改(如
String[] arguments),但类型和数组形式不能变;Java 1.5+ 也支持String... args
常见错误写法
以下写法编译通过,但 JVM 找不到入口,运行时报 Main method not found:
立即学习“Java免费学习笔记(深入)”;
-
static public void main(String[] args)—— 修饰符顺序错(虽能编译,但部分 IDE 或旧 JVM 可能不认) -
public void main(String[] args)—— 缺static -
public static int main(String[] args)—— 返回类型不是void -
public static void main(String args)—— 缺方括号,不是字符串数组 -
public static void main(String[] a, String[] b)—— 参数个数或类型不符
main 方法可以重载,但只有标准签名才被 JVM 调用
你可以在同一个类里写多个 main,比如:
public static void main(int x) { ... }public static void main(String arg) { ... }
这些不会干扰 JVM 启动——它只认 String[] 版本。其他重载方法可被代码内部调用,用于测试或辅助逻辑。
从命令行传参和简单使用
运行时加在类名后的参数会作为 args 数组传入:
java MyApp hello world 123
→ args[0] == "hello",args[1] == "world",args[2] == "123"
- 检查
args.length避免空指针 - 数值参数需手动用
Integer.parseInt()等转换 - 含空格的参数要用引号包裹:
java MyApp "hello world"
基本上就这些。写对签名,传好参数,main 就能稳稳跑起来。











