java main的使用

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

  • 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 避免空指针
  • 数值参数需手动用 Inte

    ger.parseInt()
    等转换
  • 含空格的参数要用引号包裹:java MyApp "hello world"

基本上就这些。写对签名,传好参数,main 就能稳稳跑起来。