Java如何获取传递给程序的命令行参数?

在创建Java应用程序时,我们可能希望将几个参数传递给我们的程序。为了从命令行传递参数,我们可以从main(String[] args)方法参数中读取它。

为了使一个类可执行,我们需要创建一个main()具有以下签名的方法:

public static void main(String[] args) {
}

此方法采用一个数组String作为参数。这个数组是我们在命令行中传递给程序的参数。

package org.nhooo.example.basic;

public class ArgumentParsingExample {
    public static void main(String[] args) {
        for (int i = 0; i < args.length; i++) {
            System.out.println("Argument " + (i + 1) + " = " +
                    args[i]);
        }

        // 如果要检查提供的参数数量
        // 符合计划要求,您可以检查尺寸 
        // arguments数组。
        if (args.length < 3) {
            System.out.println(
                    "You must call the program as follow:");
            System.out.println(
                    "java org.nhooo.example.basic.ArgumentParsingExample arg1 arg2 arg3");

            // 退出程序并显示错误状态,例如
            // 实例我们返回-1表示该程序 
            // 异常退出
            System.exit(-1);
        }

        System.out.println("Hello, Welcome!");
    }
}

当我们尝试运行不带参数的程序时,我们将看到以下消息:

$ java org.nhooo.example.basic.ArgumentParsingExample
You must call the program as follow:
java org.nhooo.example.basic.ArgumentParsingExample arg1 arg2 arg3

当我们传递三个参数时,我们得到的是:

$ java org.nhooo.example.basic.ArgumentParsingExample param1 param2 param3
Argument 1 = param1
Argument 2 = param2
Argument 3 = param3
Hello, Welcome!