哪个具有当前活动社区的Java CLI库功能更丰富?

Vad*_*rev 8 java command-line-interface

此问题的主要目标是创建一个包含易于使用,广泛传播(或多或少)Java CLI库(及其功能)的表.因此,如果有人需要这样的库,他可以从此页面中选择一个,过滤表以获取所需的功能.

限制

  1. 仅限OpenSource库.
  2. 这个问题的目标不是覆盖所有现有的CLI库.如果我们不添加具有难以找到的文档的"几乎死"库,则更容易选择有用的东西.如果您不确定您的CLI库,但对其功能感到自豪并可以描述为什么它比其他更好,那么添加回复/评论与信息.如果answer/comment获得10个upvotes,可以将这样的库添加到表中.
  3. 同样适用于向表添加功能.如果功能不是很有用且您不确定 - 请使用"10 upvotes"方法进行检查.

Vad*_*rev 13

Java CLI库和功能表

Java CLI库和功能表.
如果要更新此表,则应在此答案结尾处编辑CSV数据.将数据复制到文件,将文件导入GoogleDocs电子表格.与所有人共享电子表格以供只读使用,并替换上面的链接.

表中使用的缩写:

  • y(是 - 好)
  • p(偏平均值)
  • n(没有 - 坏)
  • 你(未知 - 随意插入正确的值)

表格中的功能说明

功能相关(lib A可以执行lib B无法做到的事情)

  1. 支持为所有参数/子参数生成用法/帮助文本.
  2. 支持至少一个额外级别的子参数(如JCommander中的"命令").
  3. 国际化.

项目状态相关(库和文档仍然更新或几年没有更新)

评论:在下面的所有情况下,Maven假设Maven Central Repository和Ivy - IvyRoundup Repository.

  1. 最新发布日期(如果有的话,在Maven/Ivy中).
  2. 提供最新版本(如果有Maven/Ivy).
  3. Maven/Ivy中可用版本的数量(仅计数版本,不包括里程碑或快照).

编码风格相关功能

  1. 使用注释提供参数格式.

带链接的库列表(不添加指向表的链接)

Commons CLI - 示例
JOpt Simple - 示例
args4j - 示例
JCommander - 主页上的所有示例

占位符用于明知忽略的库/功能列表


用于共享编辑表的CSV数据.在更新CSV数据的同一版本中更新此答案顶部的链接是很好的.但它也可以在以后更新.

表格中的记录按照Google查询"Java CLI"排序.更多引用的结果将是第一个,没有人可以说我有偏见.

Name,Date of latest release,Latest version available from Maven/Ivy,Number of available versions for Maven/Ivy,Uses annotations to provide arguments format,Generates usage text for all arguments,Support for at least one additional level of subarguments,Internationalization
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

  • 该表已于2007年过时. (3认同)