Commons CLI

コンポーネント レポジトリ

Sandboxコンポーネント

日本語訳 (Translations)

オリジナル

Usage Scenario's

以下のセクションでは、CLIをアプリケーション内でどのように使うかのサンプルのシナリオをご紹介します。

Using a boolean option

booleanオプションは、コマンドライン上で、オプションの存在の有無によって表されます。つまり、そのオプションが見つかればbooleanオプションの値は「真」であり、そうではなければ「偽」になります。

以下の例で、DateAppユーティリティは、現在の日付を標準出力に送ります。もし-tオプションがあれば、現在の時間も同時に出力されます。


Create the Options

Optionsオブジェクトが生成されなければなりません。また、t Option がそれに追加されなければなりません。

// create Options object
Options options = new Options();

// add t option
options.addOption("t", false, "display current time");

addOptionメソッドには3つのパラメタがあります。最初のパラメタは、オプション名を表すjava.lang.String型の値です。2番目のパラメタは、そのオプションが引数を必要とするか否かを規定するboolean型の値です。booleanオプションの場合(よく、フラグとして使われます)、引数値はありませんから、このパラメタは、falseとなります。3番目のパラメタは、オプションの説明です。この説明は、アプリケーションの使用法(Usage)のテキストとして使われます。


Parsing the command line arguments

Optionsparseメソッドは、コマンドライン引数を解析するために使われます。

CommandLine cmd = options.parse(args);

t」があるかどうかをチェックする必要がありますので、チェックを行うには、CommandLineオブジェクトに問い合わせをします。hasOptionメソッドは、java.lang.String型のパラメタを取り、java.lang.String型で表されるオプションが存在する場合はtrueを返します。そうでなければ、falseを返します。

if(cmd.hasOption("t")) {
    // print the date and time
}
else {
    // print the date
}

International Time

InternationalDateAppは、世界中のあらゆる国の日付と時間を出力する機能を備える事で、DateAppを機能拡張します。これを楽に行う為に、コマンドラインのオプションである、「c」を導入します。

// add c option
options.addOption("c", true, "country code");

2番目のパラメタは、今回はtrueとします。これにより、cオプションに引数が必要となります。コマンドライン上で必須の引数の値が与えられれば、その値が戻ります。そうでなければ、null値が戻ります。


Retrieving the argument value

オプションの引数の値を取得するのに、OptionsクラスのgetOptionValueメソッドが使われます。

// get c option value
String countryCode = options.getOptionValue("c");

if(countryCode == null) {
    // print default date
}
else {
    // print date for country specified by countryCode
}

More Information




Copyright © 1999-2007, Apache Software Foundation
Translated into Japanese by Tetsuya Kitahata , powered by Terra-International, Inc.
Original English Page would be found from HERE     --    ApacheNews    ASF プロジェクト一覧
Terra-International, Inc. -- テラ・インターナショナル
Special Thanks -- 【お問い合わせ/テキスト広告】