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

时间:2012-04-15 18:58:28

标签: java command-line-interface

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

限制

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

2 个答案:

答案 0 :(得分:13)

Java CLI库和功能表

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

表中使用的缩写:

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

中的功能说明

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

  1. 支持为所有参数/子参数生成用法/帮助文本。
  2. 支持至少一个额外级别的子参数(如JCommander中的“命令”)。
  3. 国际化。
  4. 项目状态相关(库和文档仍然更新或几年没有更新)

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

    1. 最新发布日期(如果有Maven / Ivy)。
    2. 最新版本(如果有Maven / Ivy)。
    3. Maven / Ivy中的可用版本数量(仅限计数版本,不包括里程碑或快照)。
    4. 编码样式相关功能

      1. 使用注释提供参数格式。
      2. 具有链接的库列表(不添加指向表的链接)

        Commons CLI - examples
        JOpt Simple - examples
        args4j - example
        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
        

答案 1 :(得分:3)

我通常会针对所有CLI需求转到args4j,但最近我使用的是JCommander,这在您的列表中缺失。我永远不会使用的是Commons CLI,因为像大多数公共图书馆一样,活动很少,并且有更好的解决方案。

JSONmander在github上也可用here,最后一次提交是3天前。

您对子参数的要求可能最好通过JCommander的命令解决,这些命令在其网页上的GIT CLI上下文中进行了解释。

支持使用生成,基于@Parameter注释附带的描述。

以下是您桌子的JCommander的CSV行:

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