問題タブ [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.
java - GnuParser の代わりに DefaultParser を使用すると、検出される CLI オプションが異なるのはなぜですか?
レガシー コードを移行して、サードパーティ ライブラリからの非推奨の警告を少なくしようとしています。Apachecommons-cli
ライブラリ (バージョン: 1.3.1 ) の場合、非推奨であり、代わりに使用する必要がある公式の JavaDocで検出しました。GnuParser
DefaultParser
@deprecated 1.3 以降、
{@link DefaultParser}
代わりに
ただし、次のコード スニペットは期待どおりに機能しなくなります。
CLI がいくつかのgstsetValueSeparator(',')
型をサポートできるようにするカスタム区切り文字を定義するためにここで が使用されていることに注意してください (コード スニペットを参照)。,
入力として、次のプログラム引数を使用して CLI を呼び出します。
java -jar MyCLI.jar -gst category -gsd 4
明らかに、gsd パラメーターの後にいくつかの他の引数も追加されている可能性があります。「gst」引数をセパレーターなしで使用するために期待され、正しくGnuParser
解析されるオプションは次のとおりです (経由):
- 「カテゴリ」(他には何もない)
ただし、コードを変更して、推奨されるパーサーに切り替えると、次のようになります。
結果として解析された値は、次のように誤って検出されます。
- "カテゴリー"
- 「-gsd」
- 「4」
ヒント: デバッガーを使用して、返された変数values
を介してフィールドを調べて、解析プロセスの誤った結果を検証しました。org.apache.commons.cli.Option
commands
私の予想では、パーサーの内部変更によって、既存のコードが壊れるため、別の結果が得られるはずはありません。DefaultParser
いくつかのオプション値とカスタムセパレーターに切り替えるときに、Apache Commons-CLI で同じ動作に遭遇した人はいますか?
DefaultParser
私が監督したかもしれないその構築/使用法に違いはありますか?
java - apache commons cli でハイフンを含むオプション名を作成できますか?
Apache Commons CLI Java ライブラリを使用して、「source-files」のようにハイフンを含むオプション名を設定しようとしています。
このエラーが発生します。
つまり、UNIX コマンドの標準であるハイフンを含むオプション名を使用することはできません。Commons CLIのドキュメントの例の 1 つに、ハイフンでつながれたオプション名が記載されていることに気付きました。ここで何か不足していますか?
apache-commons-cli - Apache 共通 cli でオプションの型指定された値のリストを取得する方法
オプションから Long[] を取得しようとしています。これが私のオプション定義です:
コンマ区切りのユーザー リストを使用できます。getParsedOptionValue を使用すると、最初の 1 つのオプション値のみが返されます。getOptionValues を使用すると、String[] が返されます。Long[] を取り戻す方法はありますか?
apache-commons-cli - apache commons cli を使用した位置パラメーターの定義
名前付き引数と位置引数を含む Apache Commons CLI パーサーを定義したいと考えています。
pos1 と pos2 を検証するにはどうすればよいですか?
java - apache-commons-cli を使用して HelpFormatter.printHelp() のいくつかのオプションを除外する
Java プログラムでコマンドライン引数を解析するために apache-commons-cli を使用しています。
現在、一部の機密オプションまたはデバッグオプションの表示を使用法ヘルプから除外する方法を見つけようとしています。ちなみに私はHelpFormatter
ヘルプに使用しています。
これはすべてのオプションを印刷しています。しかし、3番目のオプションを印刷したくありません。
実際の出力:
期待される出力:
このようにして、デバッグ引数は、デバッグのためにそれについて実際に知る必要がある人だけに知られます。
ヘルプ出力のみから特定のオプションを無効にする方法はありますか。しかし、他のオプションと同じように解析しますか?
ちなみに使っcommons-cli-1.3.1.jar
ています。
java - 独自のプロンプトを備えた Java コマンドライン アプリ
私はJAVAコンソールアプリケーションを書いています。ユーザーが jar を起動すると、コマンドを入力できる Linux シェルのようなコマンドラインが表示されます。これは私が以前にプログラムしたことがないものです。通常、GUI を作成するか、解析されるいくつかの引数で jar を開始します。
基本的に私は2つの質問があります:
- コマンドラインからユーザー入力を読み取り、コマンドを解析してプロンプトを生成するのに役立つサードパーティライブラリはありますか? メイン クラスで渡された引数を解析するには、通常 Apache Commons CLI で使用します。ここもフルに使うか、もっといい方法はないか。
「無限の入力」を提供するためのベストプラクティスはありますか? 私が見つけたすべてのソリューションは、次のように 10 年以上前のものです。
これはまだベストプラクティスですか、それともより良い方法がありますか?