Java 命令行参数

我们可以在运行程序时,通过命令行参数将一些外部数据传递到程序内部。在本教程中,我们将通过示例了解 Java 命令行参数。

我们可以在运行程序时,通过命令行参数将一些外部数据传递到程序内部。在本教程中,我们将通过示例了解 Java 命令行参数。

Java 命令行参数示例

public class Main {
  public static void main(String[] args) {
    System.out.println("Command-Line arguments are");

    // 循环所有参数
    for (String str : args) {
      System.out.println(str);
    }
  }
}

让我们尝试使用命令行运行这个程序。

  1. 编译代码

    javac Main.java
    

    如果文件的编码是 UTF-8,在 windows 上编译的时候可能会报错,则需要指定编码编译:

    javac -encoding utf8 Main.java
    
  2. 运行代码

    java Main
    

    现在假设我们想在运行程序时传递一些参数,我们可以在类名之后传递参数。例如,

    java Main apple ball cat
    

    这里 apple ball cat 是通过命令行传递给程序的参数。现在,我们将得到以下输出。

    apple
    ball
    cat

在上面的程序中, main() 方法包括一个名为 args 的字符串数组参数。

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

String[] 参数存储通过命令行传递的所有参数。

注意:命令行中的多个参数使用空格分隔,参数始终为字符串类型。

传递数值命令行参数

Java 程序的 main() 方法只接受字符串类型的参数。但是,我们可以将内容为数值的字符串参数转换为数值。

示例:数值命令行参数

public class Main {
  public static void main(String[] args) {

    for (String str : args) {
      // 转为整数
      int argument = Integer.parseInt(str);
      System.out.println("数字参数: " + argument);
    }
  }
}

让我们通过命令行运行程序。先编译文件:

javac Main.java

再运行文件:

java Main 11 12

这里 1112 是命令行参数。我们将得到以下输出:

数字参数: 11
数字参数: 12

注意上面例子中的这一行:

int argument = Intege.parseInt(str);

在这里,使用 Integer 类的 parseInt() 方法将参数从字符串类型转换为整数。

! 注意:如果无法将参数转换为指定的数值,则会抛出 NumberFormatException 异常。