プログラム属性の設定 |
Java 言語は、3つの異なる形式のコマンドライン引数を定義する UNIX 規約に従う。
- ワード引数 (オプションとしても知られている)
- 引数を必要とする引数
- フラグ
さらに、アプリケーションは Java コマンドライン引数に適用する次の規約を遵守する。
- ダッシュ文字(-)はオプション、フラグあるいは連続するフラグに先行する。
- 引数が別の引数を必要とする場合を除いて、引数は任意の順序で与えられうる。
- フラグは任意の順序で、そして/あるいは別々に表示されるうる。
- xn
、 または-nx
、または-x -n
。
- 一般にファイル名が最後になる。
- プログラムは、コマンドライン引数が認識されない時、使用法エラーを出力する。 使用法文は通常次の書式をとる。
usage: application_name [optional_args] required_args
ワード引数
-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
プログラム属性の設定 |