問題タブ [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 投票する
3 に答える
10566 参照

java - Apache CLI: 必要なオプションがヘルプ オプションと矛盾しています。

次のように 2 つのオプションが必要に応じて定義されている場合:

とヘルプオプション

とパーサー

ユーザーがたとえば myApp -h .. と入力すると、ヘルプ データを出力したいときに、必要なオプションが欠落しているという解析ステップで例外が発生します。

これらのオプションを必須として宣言したまま、ヘルプの呼び出しを許可するにはどうすればよいですか?

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

java - Apache コモンズ ライブラリを使用した Java コマンド ライン引数解析の問題

以下に示すように、Apache commons basic/gnu パーサーを使用してコマンド ライン オプションを解析しています。

以下のパラメーターリストを使用してプログラムを呼び出しています。

取得している出力は最初の IP アドレスだけです。 --iplist 変数に引数として渡されるポート付きの 3 つの IP アドレスをすべて取得するにはどうすればよいですか?

ここに私が使用しているオプションがあります。

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

java - Commons cliでオプション名なしでconsole-app引数を取得するには?

これは私のコンソール入力です:

java TCPPing –p –port 9900 –mps 30 –size 1000 pcB

pcB は名前のないオプションの引数です。

オプションのない pcB 引数を取得するにはどうすればよいですか?

小さなコード部分:

0 投票する
3 に答える
5349 参照

java - Hadoop NoSuchMethodError apache.commons.cli

私が使用hadoop-2.7.2していて、IntelliJ で MapReduceJob を実行しました。私の仕事では、使用してapache.commons.cli-1.3.1おり、libをjarに入れています。

Hadoop クラスターで MapReduceJob を使用すると、次のようになりますNoSuchMethodError

スレッド「メイン」の例外 java.lang.NoSuchMethodError: org.apache.commons.cli.Option.builder(Ljava/lang/String;)Lorg/apache/commons/cli/Option$Builder;

Optionメソッドがクラスに存在し、クラスがアプリケーション jarOptionから抽出されるため、わかりません。commons-cli.jarさらに、他のライブラリではこの問題はありません。

お時間をいただきありがとうございます。

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

java - Apache commons CLI - オプションの繰り返し

少し調べてみましたが、これは単なる用語の誤りかもしれませんが、Apache commons CLI で繰り返しオプションを処理することは可能ですか? 例えば:

program --arg value1 --arg value2 ...

複数のオプション引数を指定できるので、次のようなものを受け入れることができます...

program --arg value1 value2

...しかし、任意の数の繰り返されるオプションを処理したいと思います。これが可能かどうか/どのように可能か誰にもわかりますか?

多少似ているこの質問を見つけましたが、答えはありませんでした。

0 投票する
3 に答える
2229 参照

java - オプションが認識されない場合、デフォルトのパーサー (commons-cli を使用) が例外をスローしないのはなぜですか?

プログラムの引数として指定されたオプションが無効な場合 (事前定義されたオプション リストで使用できない場合)、使用方法のヘルプ メッセージを出力したいと考えています。

パラメータとして「Test」文字列を入力します。無効なオプションによりパーサーが ParseException をスローすると考えていましたが、そうではありません。どうすればその動作を達成できますか? このライブラリではまったく可能ですか? 現在は、無効なパラメーターを省略しています。

UPDATE 実際には、オプションに「-」プレフィックスがある場合、例外がスローされます。したがって、「-Test」は例外をスローしますが、「Test」はそうではありません。とにかく私の質問はまだ有効です。パーサーに無効なパラメーターで例外をスローさせる方法

0 投票する
0 に答える
175 参照

java - "\n"(改行)、apache commons cliを含むコマンドラインオプション値を取得する

私は apache-commons-cli を使用します:

コマンドラインからオプション値を取得するには:

、エスケープされたトピックを値で取得します

しかし、私の特別なケースでは、エスケープなしの文字列「abcd\n」が本当に必要です。

コマンドラインから正しい値を渡すにはどうすればよいですか?

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

java - Base64 文字列をオプションとして Apache Commons-CLI パーサーに渡す

コマンドライン引数として Base64 パラメーターを受け取る必要がある Java webstart アプリケーションを作成しました。

Apache Common-CLI を使用して、JNLP 内から引数を解析しています。引数は 2 つだけで、そのうちの 1 つは JSON で、この JSON 内には Base64 文字列があります。

問題は、Base64 文字列の最後に「=」(等号/等号) が埋め込まれており、パーサーが文字列を引数の一部として認識できず、代わりに「=」をキーとして評価しようとすることです。引数の =value 区切り記号であり、次の例外が発生します。 org.apache.commons.cli.UnrecognizedOptionException: Unrecognized option

この文字をエスケープする方法、またはパーサーに無視させる方法はありますか?

CLI オプションは、次のコードを使用して構築されます。

そして、JNLP から呼び出されています。

両方のハッシュで「=」を「a」に変更すると、パーサーは期待どおりに機能します (ただし、オプションにはもちろん無効な Base64 が含まれています)。