Java 命令行参数[猿教程]

 https://yuanjiaoc.com/tutorial/article/10188

介绍

从命令行中使用参数运行应用程序是很常见的。特别是在服务器端。通常情况下,我们不希望应用程序在每次运行时都做同样的事情:我们希望以某种方式配置其行为。

在这个简短的教程中,我们将探讨如何在Java中处理命令行参数。

在Java中获取命令行参数

由于main方法是Java应用程序的入口点,JVM通过其参数传递命令行参数。

传统的方法是使用一个String数组:

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

然而,Java 5引入了varargs,它是披着羊皮的数组。因此,我们可以用一个String vararg来定义我们的main:

public static void main(String... args) {
    // handle arguments
}

它们是相同的,因此选择它们完全取决于个人的品味和偏好。

主方法的方法参数包含命令行参数,其顺序与我们在执行时传递的参数相同。如果我们想访问我们得到了多少参数,我们只需要检查数组的长度。

例如,我们可以在标准输出上打印参数的数量和它们的值:

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

注意,在某些语言中,第一个参数将是应用程序的名称。另一方面,在Java中,这个数组只包含参数。

如何传递命令行参数

现在我们有了一个可以处理命令行参数的应用程序,我们急于尝试它。让我们看看我们有哪些选项。

命令行

最明显的方式是命令行。让我们假设我们已经编译了com.baeldung.commandlinearguments.CliExample类,其中有我们的主方法。

然后我们可以用下面的命令来运行它:

java com.baeldung.commandlinearguments.CliExample

它产生的输出如下:

Argument count: 0

现在,我们可以在类名后面传递参数:

java com.baeldung.commandlinearguments.CliExample Hello World!

而输出结果是:

Argument count: 2
Argument 0: Hello
Argument 1: World!

通常,我们把我们的应用程序作为一个jar文件发布,而不是作为一堆.class文件。比方说,我们把它打包在cli-example.jar中,并把com.baeldung.commandlinearguments.CliExample作为主类。

现在我们可以用下面的方法运行它,不需要参数。

java -jar cli-example.jar

或者带参数:

java -jar cli-example.jar Hello World!
Argument count: 2 
Argument 0: Hello 
Argument 1: World!

注意,Java将把我们在类名或jar文件名之后传递的每一个参数都视为我们应用程序的参数。因此,我们在这之前传递的所有参数都是JVM本身的参数。

IntelliJ

IntelliJ使用一个类似的过程来运行应用程序。它把这些选项简单地称为配置。

首先,我们需要右击main方法,然后选择运行'CliExample.main()'。

这将运行我们的程序,但它也将把它添加到运行列表中,以便进一步配置。

因此,要配置参数,我们应该选择 Run > Edit Configurations…,然后编辑程序参数文本框:

之后,我们应该点击确定并重新运行我们的应用程序,例如用工具栏上的运行按钮。

三方库

在简单的情况下,手工处理命令行参数是很直接的。然而,随着我们的要求变得越来越复杂,我们的代码也越来越复杂。因此,如果我们想创建一个有多个命令行选项的应用程序,使用第三方库会更容易。

幸运的是,有大量的这些库可以支持大多数的使用情况。两个流行的例子是Picocli和Spring Shell。

结论

让你的应用程序的行为可配置,总是一个好主意。在这篇文章中,我们看到了如何使用命令行参数来做到这一点。此外,我们还介绍了传递这些参数的各种方法。

  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值