如何修改 Java 命令行参数

346 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天,点击查看活动详情

如何检查你的代码是否没有错误、在所有情况下都可以工作,并处理所有的边缘情况?

最直接的方法是对照所有可能的测试用例范围来检查它,在这种情况下,通过这些测试用例可能非常耗时,我们需要一些方法可以轻松完成这项工作,并且可以更大程度上自动化的输入。Java 中的命令行参数就是一种解决方案,可以使我们的测试和调试过程更容易。

在本文中,我们将简要讨论什么是命令行参数,它们是如何传递的,以及它们是如何工作的;但我们主要关注如何修改 Java 命令行参数。

// here args will hold the command line arguments
    public static void main(String[] args) {
        System.out.println("Hello World!");
        // remaining code will go here
    }

什么是命令行参数?

Java 命令行参数使程序员能够在程序执行期间传递参数。程序员可以直接从控制台传递这些参数,这些参数将被main()方法访问并用作输入。main()我们还可以通过将值直接传递的方法来绕过命令行参数。

命令行参数如何工作?

执行时提供的命令行参数被打包并提供给args[]Args[]本质上是一个字符串数组,其中包含提供给它的所有命令行参数。每个参数都将存储在一个索引中,从args[0]一直到args[n].

你如何传递命令行参数?

命令行参数通过命令提示符或终端传递。通过它传递的所有参数都将在args[]JVM 内部转换并包装到数组中。 

现在让我们看看如何在示例的帮助下传递命令行参数。假设我们有一个包含一些 Java 代码的文件。以下步骤将演示如何在 Java 中传递命令行参数:

  1. .java使用扩展名(例如)保存 Java 程序Arguments.java

  2. 打开终端/命令提示符进入程序本地存储的目录。

  3. 编译Java程序以将.java文件转换为.class文件

    • 命令:(javac filename.javaHere,javac Arguments.java
  4. 运行程序并在文件名用空格分隔后传递参数。

    • 命令:(java filename argument1 argument2 …. argumentN此处为 Java 参数Welcome to this blog and Happy Learning

如何访问命令行参数?

如上例所述,现在让我们尝试访问所有在 Java 中传递的命令行参数。我们该怎么做呢?

由于这些参数存储在args[] 数组中,这意味着我们可以使用 轻松访问它们args[i],在这里我指定了一个可以从0n(传递的参数总数)变化的索引。

下面的代码是为示例:

Java

class Arguments {
    public static void main( String[] args ) {
        System.out.println(" Hello World! ");
        // args.length is used to get length of args array

        System.out.println(" Total number of args: " + args.length);
        // iterating over the args array to print the args if available 

        for (int i = 0; i < args.length; i++) {
            System.out.println(" Arg " + i + ": " + args[i]);
        }
    }
}

Output

Java

 Hello World! 
 Total number of args: 7
 Arg 0: Welcome
 Arg 1: to
 Arg 2: this
 Arg 3: blog
 Arg 4: and
 Arg 5: Happy
 Arg 6: Learning

如何修改命令行参数?

同样,我们可以利用args[i]在第 i 个索引处获取值,然后使用赋值运算符 ( =),我们可以在第 i 个索引处修改命令行参数。

下面的代码片段将修改一些通过 Java 命令行传递的参数。## 如何修改命令行参数?

同样,我们可以利用args[i]在第 i 个索引处获取值,然后使用赋值运算符 ( =),我们可以在第 i 个索引处修改命令行参数。

下面的代码将修改一些通过 Java 命令行传递的参数。

Java

args[1] = " Modified Command Line Argument 1 ";
args[3] = " Modified Command Line Argument 2 ";
args[5] = " Modified Command Line Argument 3 ";

Updated Output

Java

 Hello World! 
 Total number of args: 7
 Arg 0: Welcome
 Arg 1:  Modified Command Line Argument 1 
 Arg 2: this
 Arg 3:  Modified Command Line Argument 2 
 Arg 4: and
 Arg 5:  Modified Command Line Argument 3 
 Arg 6: Learning

总结

  • Java 命令行参数是一种通过命令提示符向程序提供输入的方式。
  • 命令行参数在执行运行命令时传递,参数紧跟在文件名之后传递,用空格分隔。
  • args[]命令行参数最终由主函数中的字符串数组 ( ) 接收。
  • 我们可以使用和赋值运算符访问或修改命令行参数args[i],就像我们在普通编程语言中所做的那样。