# Java 命令行参数

> 原文： [https://www.programiz.com/java-programming/command-line-arguments](https://www.programiz.com/java-programming/command-line-arguments)

#### 在本教程中，我们将借助示例学习 Java 命令行参数。

Java 中的**命令行参数**允许我们在程序执行期间传递参数。

顾名思义，参数是通过命令行传递的。

* * *

### 示例：命令行参数

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

    // loop through all arguments
    for(String str: args) {
      System.out.println(str);
    }
  }
} 
```

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

**1.编译代码**

```java
javac Main.java 
```

**2.运行代码**

```java
java Main 
```

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

```java
java Main apple ball cat 
```

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

```java
Command-Line arguments are
Apple
Ball
Cat 
```

在上述程序中，`main()`方法包括一个名为`args`的字符串数组作为其参数。

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

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

**注意**：参数始终存储为字符串，并始终由**空格**分隔。

* * *

## 传递数字命令行参数

每个 Java 程序的`main()`方法仅接受字符串参数。 因此，不可能通过命令行传递数字参数。

但是，稍后我们可以将字符串参数转换为数值。

### 示例：数字命令行参数

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

    for(String str: args) {
      // convert into integer type
    int argument = Integer.parseInt(str);
    System.out.println("Argument in integer form: " + argument);
    }

  }
} 
```

让我们尝试通过命令行运行程序。

```java
// compile the code
javac Main.java

// run the code
java Main 11 23 
```

此处`11`和`23`是命令行参数。 现在，我们将获得以下输出。

```java
Arguments in integer form
11
23 
```

在上面的示例中，请注意以下行

```java
int argument = Intege.parseInt(str); 
```

在此，`Integer`类的`parseInt()`方法将字符串参数转换为整数。

同样，我们可以使用`parseDouble()`和`parseFloat()`方法将字符串分别转换为`double`和`float`。

**注意**：如果无法将参数转换为指定的数值，则会发生名为`NumberFormatException`的异常。