問題タブ [apache-commons-cli]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1381 参照

java - GnuParser の代わりに DefaultParser を使用すると、検出される CLI オプションが異なるのはなぜですか?

レガシー コードを移行して、サードパーティ ライブラリからの非推奨の警告を少なくしようとしています。Apachecommons-cliライブラリ (バージョン: 1.3.1 ) の場合、非推奨であり、代わりに使用する必要がある公式の JavaDocで検出しました。GnuParserDefaultParser

@deprecated 1.3 以降、{@link DefaultParser}代わりに

ただし、次のコード スニペットは期待どおりに機能しなくなります。

CLI がいくつかのgstsetValueSeparator(',')型をサポートできるようにするカスタム区切り文字を定義するためにここで が使用されていることに注意してください (コード スニペットを参照)。,

入力として、次のプログラム引数を使用して CLI を呼び出します。

java -jar MyCLI.jar -gst category -gsd 4

明らかに、gsd パラメーターの後にいくつかの他の引数も追加されている可能性があります。「gst」引数をセパレーターなしで使用するために期待され、正しくGnuParser解析されるオプションは次のとおりです (経由):

  1. 「カテゴリ」(他には何もない)

ただし、コードを変更して、推奨されるパーサーに切り替えると、次のようになります。

結果として解析された値は、次のように誤って検出されます。

  1. "カテゴリー"
  2. 「-gsd」
  3. 「4」

ヒント: デバッガーを使用して、返された変数valuesを介してフィールドを調べて、解析プロセスの誤った結果を検証しました。org.apache.commons.cli.Optioncommands

私の予想では、パーサーの内部変更によって、既存のコードが壊れるため、別の結果が得られるはずはありません。DefaultParserいくつかのオプション値とカスタムセパレーターに切り替えるときに、Apache Commons-CLI で同じ動作に遭遇した人はいますか?

DefaultParser私が監督したかもしれないその構築/使用法に違いはありますか?

0 投票する
1 に答える
1954 参照

java - apache commons cli でハイフンを含むオプション名を作成できますか?

Apache Commons CLI Java ライブラリを使用して、「source-files」のようにハイフンを含むオプション名を設定しようとしています。

このエラーが発生します。

つまり、UNIX コマンドの標準であるハイフンを含むオプション名を使用することはできません。Commons CLIのドキュメントの例の 1 つに、ハイフンでつながれたオプション名が記載されていることに気付きました。ここで何か不足していますか?

0 投票する
1 に答える
88 参照

apache-commons-cli - Apache 共通 cli でオプションの型指定された値のリストを取得する方法

オプションから Long[] を取得しようとしています。これが私のオプション定義です:

コンマ区切りのユーザー リストを使用できます。getParsedOptionValue を使用すると、最初の 1 つのオプション値のみが返されます。getOptionValues を使用すると、String[] が返されます。Long[] を取り戻す方法はありますか?

0 投票する
1 に答える
2469 参照

apache-commons-cli - apache commons cli を使用した位置パラメーターの定義

名前付き引数と位置引数を含む Apache Commons CLI パーサーを定義したいと考えています。

pos1 と pos2 を検証するにはどうすればよいですか?

0 投票する
1 に答える
1706 参照

java - apache-commons-cli を使用して HelpFormatter.printHelp() のいくつかのオプションを除外する

Java プログラムでコマンドライン引数を解析するために apache-commons-cli を使用しています。

現在、一部の機密オプションまたはデバッグオプションの表示を使用法ヘルプから除外する方法を見つけようとしています。ちなみに私はHelpFormatterヘルプに使用しています。

これはすべてのオプションを印刷しています。しかし、3番目のオプションを印刷したくありません。

実際の出力:

期待される出力:

このようにして、デバッグ引数は、デバッグのためにそれについて実際に知る必要がある人だけに知られます。

ヘルプ出力のみから特定のオプションを無効にする方法はありますか。しかし、他のオプションと同じように解析しますか?

ちなみに使っcommons-cli-1.3.1.jarています。

0 投票する
2 に答える
4676 参照

java - 独自のプロンプトを備えた Java コマンドライン アプリ

私はJAVAコンソールアプリケーションを書いています。ユーザーが jar を起動すると、コマンドを入力できる Linux シェルのようなコマンドラインが表示されます。これは私が以前にプログラムしたことがないものです。通常、GUI を作成するか、解析されるいくつかの引数で jar を開始します。

基本的に私は2つの質問があります:

  1. コマンドラインからユーザー入力を読み取り、コマンドを解析してプロンプトを生成するのに役立つサードパーティライブラリはありますか? メイン クラスで渡された引数を解析するには、通常 Apache Commons CLI で使用します。ここもフルに使うか、もっといい方法はないか。
  2. 「無限の入力」を提供するためのベストプラクティスはありますか? 私が見つけたすべてのソリューションは、次のように 10 年以上前のものです。

    これはまだベストプラクティスですか、それともより良い方法がありますか?