1

私がここで遭遇している興味深い小さな問題:

クライアントが次のようなことができるようにしたいと思います。

(1)java -jar myJar.jar inputFile outputFile

また

(2)java -jar myJar.jar text outputFile

outputFileオプションの引数です。

基本的に、(1) ファイルから入力を読み取り、(2) プログラムが直接使用する入力を提供します。引数が入力であるかどうか、またはファイルの場所であるかどうかを判断する方法はありませんが、考えられます。-i inputfile通常のコマンド ラインでは、ファイルから読み取りたいことを示すようなフラグを指定します。クライアントの使いやすさを維持するためのオプションは何ですか?

クライアントが最初の引数に使用する必要がある構文を作成する唯一のオプションはありますか? すなわち

"-t text"または"-i inputFile"

これを可能にする commons cli などのライブラリを見てきましたが、ライブラリを使用しないソリューションを好むでしょう。

4

3 に答える 3

1

問題を正しく理解していれば、直接入力を明示的に指定するのではなく、引数の数を確認するだけではいけませんか?同様に、1つの引数が渡された場合、最初の引数が出力され、2つの引数が渡された場合、最初の引数が入力され、2番目の引数が出力されますか?

そうは言っても、ハイフンのような「オプション」構文を使用するのは、CLIに慣れているほとんどの人にとっておそらく最も簡単です。

于 2012-12-12T21:22:32.387 に答える
1

標準入力 (System.in) から読み取り、標準出力 (System.out) に出力することをお勧めします。

この方法では、パラメーターは必要ありません。CLI ツールを使用する人にとっては非常に直感的です。また、入力がどこから来るかの詳細を OS に任せることができます。

したがって、UNIX OS では、jar を次のように使用します。

echo "some test" | java -jar myjar.jar > outfile

また

cat somefile | java -jar myjar.jar > outfile
于 2012-12-12T21:16:09.233 に答える
1

使用できます

input=text or file=inputfile 

(オプションとして output=outputFile を使用)。

この場合、すべてのパラメーターを同じように扱い、区切り文字「=」で分割し、「=」の左側を確認して、どのパラメーターであるかを判断します。

于 2012-12-12T21:31:01.150 に答える