杰瑞科技汇

Java的main方法参数如何传递和使用?

main 方法是 Java 程序的入口点,它的标准签名是:

Java的main方法参数如何传递和使用?-图1
(图片来源网络,侵删)
public static void main(String[] args)

这里,我们重点解析 args 这个参数。

args 是什么?

args 是一个 字符串数组 (String[]) 的名称。

  • String[]: 这表示 args 是一个数组,并且数组中的每一个元素都是 String 类型的。
  • args: 这个名称是 "arguments"(参数)的缩写,这是一个约定俗成的命名,你可以使用任何合法的变量名(如 params, commandLineArguments),但 args 是最常见、最被广泛接受的写法,强烈建议遵守这个约定。

args 的作用

args 用于接收在命令行中运行 Java 程序时传入的参数。

当你编译并运行一个 Java 程序时,可以在 java 命令后面跟上你想要传递给程序的参数,这些参数会被 JVM(Java 虚拟机)捕获,并组织成一个字符串数组,然后传递给 main 方法的 args 参数。

Java的main方法参数如何传递和使用?-图2
(图片来源网络,侵删)

如何在命令行中传递参数?

假设你有一个名为 MyProgram.java 的文件。

第一步:编译程序

javac MyProgram.java

这会生成一个 MyProgram.class 文件。

第二步:运行程序并传递参数

使用 java 命令,在类名后面跟上你想要传递的参数,参数之间用空格隔开。

java MyProgram hello world 123

在这个例子中:

  • java 是 JVM 的启动命令。
  • MyProgram 是你想要执行的类。
  • hello, world, 123 就是传递给 main 方法的三个参数。

args 数组的内容解析

当你运行 java MyProgram hello world 123 时,args 数组的内容如下:

  • args 的长度 (args.length) 是 3,因为你传入了3个参数。
  • args[0] 的值是 "hello"
  • args[1] 的值是 "world"
  • args[2] 的值是 "123"

重要提示

  • 所有参数,无论你输入的是数字还是其他符号,在 args 中都以字符串的形式存在。"123" 是一个字符串,而不是整数 123,如果你需要把它当作数字使用,必须手动进行类型转换(使用 Integer.parseInt(args[2]))。
  • args 数组不包含类名(MyProgram),类名是 JVM 用来定位并启动主类的,它不是 main 方法的参数。

代码示例

下面是一个完整的示例,演示如何遍历并打印 args 数组中的所有参数。

ArgumentExample.java

public class ArgumentExample {
    public static void main(String[] args) {
        // 1. 检查是否传入了参数
        if (args.length == 0) {
            System.out.println("没有传入任何参数。");
        } else {
            System.out.println("总共传入了 " + args.length + " 个参数。");
            System.out.println("参数列表如下:");
            // 2. 使用 for 循环遍历 args 数组
            for (int i = 0; i < args.length; i++) {
                System.out.println("参数 [" + i + "]: " + args[i]);
            }
        }
        System.out.println("--------------------");
        // 3. 使用增强 for 循环 (for-each) 遍历 args 数组
        System.out.println("使用 for-each 循环打印参数:");
        for (String arg : args) {
            System.out.println(arg);
        }
    }
}

运行和输出

不传参数

java ArgumentExample

输出:

没有传入任何参数。
--------------------
使用 for-each 循环打印参数:

传入参数

java ArgumentExample Java is fun 2025

输出:

总共传入了 4 个参数。
参数列表如下:
参数 [0]: Java
参数 [1]: is
参数 [2]: fun
参数 [3]: 2025
--------------------
使用 for-each 循环打印参数:
Java
is
fun
2025

main 方法签名详解

为了完整性,我们再回顾一下整个 main 方法的签名:

public static void main(String[] args)
  • public: 访问修饰符。main 方法必须被 public 修饰,这样 JVM 才能从任何地方访问它。
  • static: 关键字,这意味着 main 方法属于类 MyProgram,而不是属于类的某个实例,你不需要创建 MyProgram 的对象(即 new MyProgram())就可以调用 main 方法,JVM 在程序启动时可以直接通过类名调用它。
  • void: 返回类型。main 方法在执行完毕后不返回任何值,程序结束的信号由 JVM 发出,而不是 main 方法返回一个值。
  • main: 方法名,这是 JVM 规定的固定名称,JVM 会自动寻找这个名称的方法作为程序入口。
  • String[] args: 参数列表,这是我们讨论的核心,用于接收命令行参数。
特性 描述
名称 args (arguments的缩写),是 String[] 类型的变量名。
类型 String[],一个字符串数组。
作用 接收在命令行中通过 java 命令传入的参数。
索引 第一个参数是 args[0],第二个是 args[1],以此类推。
长度 参数的数量可以通过 args.length 获取。

理解 main 方法的 args 参数是掌握 Java 命令行程序开发的基础,它使得你的程序可以更加灵活和动态地接收外部输入。

分享:
扫描分享到社交APP
上一篇
下一篇