8

この質問の主な目的は、使いやすく、広く普及している(多かれ少なかれ)Java CLIライブラリ(およびその機能)を備えたテーブルを作成することです。したがって、誰かがそのようなライブラリを必要とする場合、彼はこのページから1つを選択し、必要な機能のテーブルをフィルタリングすることができます。

制限

  1. オープンソースライブラリのみ。
  2. これは、既存のすべてのCLIライブラリを網羅するというこの質問の目的ではありません。ドキュメントが見つけにくい「ほとんど死んでいる」ライブラリを追加しないと、便利なものを選択するのが簡単になります。CLIライブラリについて確信が持てないが、その機能を誇りに思っており、他のライブラリよりも優れている理由を説明できる場合は、回答/コメントに情報を追加してください。回答/コメントが10の賛成票を獲得した場合、そのようなライブラリをテーブルに追加しても問題ありません。
  3. テーブルへの機能の追加にも同じことが当てはまります。機能があまり役に立たず、確信が持てない場合は、「10賛成」の方法で確認してください。
4

2 に答える 2

13

JavaCLIライブラリと機能の表

JavaCLIライブラリと機能の表。
このテーブルを更新する場合は、この回答の最後にあるCSVデータを編集する必要があります。データをファイルにコピーし、ファイルをGoogleDocsスプレッドシートにインポートします。読み取り専用のスプレッドシートを全員と共有し、上のリンクを置き換えます。

表で使用されている略語:

  • y(はい-良い)
  • p(部分的-平均)
  • n(いいえ-悪い)
  • u(不明-正しい値を自由に挿入してください)

表の機能の説明

機能関連(libAはlibBができないことを実行できます)

  1. すべての引数/サブ引数の使用法/ヘルプテキストの生成をサポートします。
  2. 少なくとも1つの追加レベルのサブ引数(JCommanderの「コマンド」など)のサポート。
  3. 国際化。

プロジェクトのステータス関連(ライブラリとドキュメントはまだ更新されているか、数年間更新されていません)

コメント:以下のすべての場合において、MavenはMaven中央リポジトリーを想定し、Ivy- IvyRoundupリポジトリーを想定しています。

  1. 最新のリリース日(利用可能な場合はMaven / Ivy)。
  2. 利用可能な最新バージョン(利用可能な場合はMaven / Ivyで)。
  3. Maven / Ivyで利用可能なバージョンの数(マイルストーンやスナップショットではなく、リリースのみをカウントします)。

コーディングスタイル関連の機能

  1. 注釈を使用して引数形式を提供します。

リンク付きのライブラリのリスト(テーブルにリンクを追加しないでください)

CommonsCLI-JOptSimple-
args4j-JCommander-メインページのすべての

故意に無視されたライブラリ/機能のリストのプレースホルダー


CSV-テーブルの共有編集用のデータ。CSVデータを更新するのと同じリビジョンで、この回答の上部にあるリンクを更新することをお勧めします。ただし、後で更新することもできます。

Googleクエリ「JavaCLI」に従ってソートされたテーブル内のレコード。より多くの引用された結果が最初になり、誰も私が偏見を持っているとは言えませんでした。

名前、最新リリースの日付、Maven / Ivyから利用可能な最新バージョン、Maven / Ivyで利用可能なバージョンの数、引数形式を提供するための注釈の使用、すべての引数の使用テキストの生成、少なくとも1つの追加レベルのサブ引数のサポート、国際化
Commons CLI、2015-06-17,1.3.1,5、n、y、n、n
JOpt Simple、2016-09-25,5.0.3,23、n、y、n、n
args4j、2016-01-31,2.33,31、y、y、n、n
JCommander、2017-02-12,1.64,31、y、y、y、y
于 2012-04-15T18:59:10.933 に答える
3

私は通常、すべてのCLIのニーズに合わせてargs4jにアクセスしましたが、最近は、リストにないJCommanderを主に使用しています。ほとんどのコモンズライブラリと同様に、アクティビティがほとんどなく、より優れたソリューションが利用できるため、私が決して使用しないのはコモンズCLIです。

JCommanderはここgithubでも入手でき、最後のコミットは3日前です。

サブ引数の要件は、WebページのGITCLIのコンテキストで説明されているJCommanderのコマンドでおそらく最もよく解決されます。

@Parameterアノテーションに含まれる説明に基づいて、使用法の生成がサポートされます。

テーブルのJCommanderのCSV行は次のとおりです。

jcommander,2012-01-11,1.23,19,y,y,y

于 2012-04-15T19:41:38.590 に答える