HOWTO · Java

Java でのコマンドライン解析

この記事では、Java でのコマンドライン解析を紹介します

このページの内容

この記事では、Java でコマンドライン解析を実行する方法を紹介します。

Java でのコマンドライン解析

場合によっては、Java プログラムを実行するために、プログラムを実行する前にいくつかの基本的な入力が必要になります。通常、これらの入力はコマンドライン引数によって提供されます。Java では、コマンドライン引数は main() 関数内の String[] args に保存されます。

ターミナル/コマンドプロンプトから引数を受け入れるには、Java プログラムでオプションを定義する必要があります。渡すすべてのコマンドライン引数は、オプションに格納する必要があります。以下のコード例では、作成された 2つのオプションは、コピーと貼り付けの現象を示しています。説明を参照してください。

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);
  }
}

上記のプログラムで作成された 2つのオプションがあります。1つはソースで、もう 1つは宛先です。ソースオプションを作成する際に、その短期引数を s として割り当て、ソースに名前を付けました。s は、ソース引数の値を取得するコマンドです。プログラムを実行するとき、ユーザーはコマンドとして -s を使用し、その後にその値を続ける必要があります。以下の出力を参照してください。また、要件を true に設定し、ソースファイルパスとして説明を指定しました。後で、このソースオプション引数を Options 内に追加しました。同様に、オプションの宛先を使用して、異なる値を特徴とする同じことを実行しました。

これら 2つのオプションの解析に関しては、CommandLineParser のオブジェクトを作成しました。HelpFormatter の助けを借りて、例外を表示する必要がある場合は、コマンド引数をフォーマットしました。

try...catch メソッド内で、パラメータオプションと args を特徴とする解析に parse() を使用します。次に、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//