問題タブ [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 - Commons CLI がコマンド ライン セットアップを受け入れない
ここではApache Commons CLI 1.2を使用します。2 つのランタイム オプションを必要とする実行可能 JAR がfizz
ありbuzz
ます。どちらも引数/値を必要とする文字列です。私は(可能な限り)私のアプリを次のように実行したいと思います:
java -jar myapp.jar -fizz "よし、じゃあ!" -バズ「さようなら、さようなら!」
この場合、fizz
オプションの値は「Alrighty, then!」などになります。
これが私のコードです:
これを実行すると、次の出力が得られます。
フィズは: null
アプリを思い通りに起動できるようにするには、コードをどうする必要がありますか? または、私がそれに到達できる最も近いものは何ですか?
ボーナスポイント:と引数OptionBuilder
の違いを誰かが説明してくれたら、withArgName(...)
次のように同じ値を渡しているので:withLongOpt(...)
create(...)
java - Java: Apache commons-cli 互いに依存するオプションを処理する方法
私はApache commons-cli v1.3にちょっと苦労していますが、次の問題に対する実用的な解決策をまだ見つけていません:
指定されたパラメーターに応じて、文字列を作成(またはローカルファイルから読み取り)、インラインで編集し、オプションで表示、ローカルファイルへの文字列の書き込み、またはHTTPリクエスト経由で送信するコマンドラインツールがありますサーバーに。
したがって、「作成」の場合は「c」、「読み取り」の場合は「r」、「編集」の場合は「e」(cli 経由)、表示の場合は「d」、「書き込み」の場合は「w」、および「 p" は「サーバーにプッシュ」
もちろん、いくつかの組み合わせは可能です。たとえば、この文字列を作成して、ファイルから読み書きすることなくプッシュできるようにする必要があります。また、プッシュせずに作成して書き込むことができるはずです...
したがって、パラメーターのセマンティクスは次のとおりです。
明らかに、文字列が「作成」されるとき、それは「読み取り」されてはなりません。「c」reating するときは、cli-parser からのインタラクティブな入力を使用します。「読む」とき、ユーザーがcliからのインタラクティブな入力を介して「e」編集できるようにしたいと思います。残りのパラメータはオプションです。
次へ: 「読む」ときは、ファイル名/パスを指定する必要があります。また、「書く」ときはこれが必要です。とにかく、読み取るファイルと書き込む 2 番目のファイルを指定できるようにする必要があります。したがって、ファイル名には 2 つの引数があり、どちらもオプションです。
結果の構文は次のようになります。
等々。
私はここで少し迷っています。指定されたパラメーター (オプション) に基づいて必要とされる、ファイル名に 2 つの引数を持つように commons-cli を構成するにはどうすればよいですか? これは可能ですか?
java - Apache commons CLI を使用した条件付きコマンド ライン オプション
現在、Apache の共通 CLI ライブラリを使用してコマンド ライン オプションを解析していますが、条件付きの要件を簡単に処理できる方法はないかと考えていました。
たとえば、以下の例では、2 つの必須オプション-a
と-b
オプションの があり-h
、説明を表示する必要があります。パーサーが現在動作する方法は、必要なオプションの 1 つが欠落している場合はいつでも ParserException をスローすることを期待するというものです。ここまでは順調ですね。-h
私の質問は、が指定されているときに必要なオプションを検索しない方法があるかどうかです。これ-h
は、ヘルプのみを出力し、実際にアプリを起動しないのが一般的であるため、他のコマンド ライン オプションのチェックをスキップしたいと思います。
java - UNIXからApache CLIを実装したJARを実行する方法
Apache CLI ライブラリを使用して、実行可能な jar ファイルを作成しました。プログラムをEclipseで開発しましたが、問題なく動作します。ただし、これを UNIX (solaris) 環境で実行する必要があり、何も機能していないようです。これが私が使用するコマンドです
$cPath には、必要なすべての jar へのパスがあります。
これを実行しようとすると、Apache CLI の JAR が見つからないというエラーが表示されます。だから、ここに私の質問があります
UNIX で CLI を実装しようとすると、正しい構文がありますか?
必要な JAR へのパスを正しく設定しましたか?
お知らせ下さい。
編集
わかりましたので、ここに私が試したものがあります。jarのメインクラスを次のように実行しました
そしてこれはうまくいきます!ただし、すべてのファイルをjarして実行しようとすると
これは例外をスローします
基本的に、それは私が推測するcli jarを見つけることができません。また、作成したjarファイルに必要なすべてのライブラリを含めようとしましたが、それでも同じエラーが発生します。
お知らせ下さい。
編集2
別の更新。
これは動作します
しかし、メインクラスの名前を提供したくありません。私はすでにマニフェストファイルでそれを定義しています。
お知らせ下さい。
java - ClassNotFoundException: maven での org.apache.commons.cli.ParseException
Linux のコマンドラインから Java プロジェクトを実行しようとしています:
$ java -jar target/my-app.jar -csv test.csv
このエラーが発生しました
私はmaven-3を使用しています。ここで私のビルドmaven構成:
そして私の commons-cli 依存宣言
コードと依存関係をクラスから削除すると、エラーは発生しなくなります。
ありがとうございました !
java - CommandLineParser#parser の呼び出し時に org.apache.commons.cli を使用して java.lang.IllegalAccessError が発生する
Apache Commons CLI ライブラリを使用して、Eclipse プロジェクトのコマンド ライン オプションを解析しようとしています。使用シナリオの例に大まかに従っています。
Eclipse プロジェクトのルートにcommons-cli-1.3.1
あるフォルダーにフォルダーを追加しました。lib
これをインポートに追加しました:
そして、これは私のトップにmain
:
エラーなしでコンパイルされますが、parser.parse
呼び出しを実行すると次のエラーが生成されます。
この時点では、クラス ローダーは使用していません。
このエラーはどういう意味ですか? エラーを解決して引数を解析するにはどうすればよいですか?
java - CommandLine の Commons CLI の空のオプション
Commons CLI でのOptions
適用方法がわかりません。DefaultParser
CommandLine
オブジェクトが作成されるとき、割り当てられたOptions
ものは常に空です。
次のコード ブロックは、Commons CLI ドキュメントをどのように解釈したかです。
なぜそれline.getOptions()
が空で、オプションを適切に適用するのですか?