HOWTO · Java

Java 中的命令行解析

本文介绍 Java 中的命令行解析

本页内容

本文介绍如何在 java 中执行命令行解析。

Java 中的命令行解析

有时,要执行 Java 程序,我们需要在运行程序之前进行一些基本输入。通常,这些输入由命令行参数提供。在 Java 中,命令行参数保存在 main() 函数内的 String[] args 中。

为了从终端/命令提示符接受参数,我们需要在 Java 程序中定义选项。你传递的每个命令行参数都需要存储在选项中。在下面的代码示例中,创建的两个选项涉及复制和粘贴现象。请看说明。

import org.apache.commons.cli.*;
public class Main {
  public static void main(String[] args) throws Exception {
    Options options = new Options(); // Options Arguments which are Acceptable By Program.
    Option source = new Option("s", "source", true, "source file path");
    source.setRequired(true);
    options.addOption(source);
    Option destination = new Option("d", "Destination", true, "Destination file Path");
    destination.setRequired(true);
    options.addOption(destination);

    CommandLineParser parser = new BasicParser();
    // use to read Command Line Arguments
    HelpFormatter formatter = new HelpFormatter(); // // Use to Format
    CommandLine cmd = null;

    try {
      cmd = parser.parse(
          options, args); // it will parse according to the options and parse option value
    } catch (ParseException e) {
      System.out.println(e.getMessage());
      formatter.printHelp("utility-name", options);

      System.exit(1);
    }

    String argument1 = cmd.getOptionValue("source");
    String argument2 = cmd.getOptionValue("Destination");

    System.out.println(argument1);
    System.out.println(argument2);
  }
}

在上面的程序中创建了两个选项。一个是源头,一个是目的地。在创建 source 选项时,我们将其短期参数指定为 s 并将其命名为 source。s 是获取源参数值的命令。运行程序时,用户必须使用 -s 作为命令,后跟其值。请参阅下面的输出。我们还将要求设置为 true 并将描述作为源文件路径。后来我们在选项中添加了这个源选项参数。同样,对于选项 destination,我们执行了具有不同值的相同操作。

在解析这两个选项时,我们创建了一个 CommandLineParser 对象。在 HelpFormatter 的帮助下,如果需要显示异常,我们可以格式化命令参数。

try...catch 方法中,使用 parse() 来解析参数 optionsargs。然后我们简单地使用 getOptionValue() 获取选项的值并在括号内传递选项的名称。

我们只是打印值。另一方面,你可以使用这种方法运行不同的程序。

要运行该程序,我们必须使用以下命令。

javac
    - cp 'org.apache.commons.cli-1.2.0.jar' Main.java

          java
    - cp 'org.apache.commons.cli-1.2.0.jar' Main.java - s 'D://textfile.txt'
    - d 'D://DuplicatFolder//'

这里,-s-d 是命令。它们后面分别是它们的值。例如,在上面的程序中,我们将为 s 放置源路径,为 d 放置目标路径。

上面的程序将给出以下输出。

D : // textfile.txt
    D: // DuplicatFolder//