Previous | Next | Trail Map | Writing Java Programs | プログラム属性の設定


コマンドライン引数の規約

Java 言語は、3つの異なる形式のコマンドライン引数を定義する UNIX 規約に従う。


さらに、アプリケーションは Java コマンドライン引数に適用する次の規約を遵守する。

ワード引数

-verbose のような、引数はワード引数であって、コマンドラインではそれら全体で指定されなければならない。 例えば、 - ver -verbose と一致 しない

ワード引数を確認するために、次のような文を使用することができる。

if (argument.equals("-verbose"))
    vflag = true;

この文はワード引数 -verbose を確認して、プログラムが冗長モードで実行するべきであることを表すフラグを設定する。

引数を必要とする引数

いくつかの引数はより多くの情報を必要とする。 例えば、 -output のようなコマンドライン引数により、ユーザはプログラムの出力をリダイレクトすることができる。 しかし、 -output オプションだけでは、アプリケーションに十分な情報を提供することはできない。アプリケーションはどこにその出力をリダイレクトするべきかどのように知ればいいのだろうか? したがって、ユーザは同様にファイル名も指定しなくてはならない。 一般に、引数を必要とするコマンドライン引数への補足情報は、コマンドラインの次の項目によって提供される。 引数を必要とする引数を解析するために、次のような文を使用することができる。

if (argument.equals("-output")) {
    if (nextarg < args.length)
        outputfile = args[nextarg++];
    else
        System.err.println("-output requires a filename");
}

このコードでは、次の引数を使用しようとする前に、ユーザが実際にその引数を指定しているが確認していることに注意すること。

フラグ

フラグは、いくつかの方法でプログラムの振る舞いを変更するひとつの文字コードである。 例えば、UNIX の ls コマンドで提供されている -t フラグは、出力がタイムスタンプによりソートされるべきであることを表す。 ほとんどのアプリケーションでは、ユーザは任意の順序で別々にフラグを指定することができる。

-x -n、あるいは -n -x 

さらに、ユーザの操作をより容易にするために、アプリケーションは、ユーザがフラグを連結して、任意の順序でそれらを指定できるようにすべきである。

-nx 、あるいは -xn 

次のページ で説明するサンプルプログラムは、任意の順序で、そして/あるいは別々に指定できるフラグ引数を処理するための、単純なアルゴリズムを実装している。


Previous | Next | Trail Map | Writing Java Programs | プログラム属性の設定