这个问题的主要目标是创建一个包含易于使用,广泛传播(或多或少)Java CLI库(及其功能)的表。因此,如果有人需要这样的库,他可以从此页面中选择一个,过滤表以获取所需的功能。
答案 0 :(得分:13)
Java CLI libraries and features表。
如果要更新此表,则应在此答案结尾处编辑CSV数据。将数据复制到文件,将文件导入GoogleDocs电子表格。与所有人共享电子表格以供只读使用,并替换上面的链接。
表中使用的缩写:
评论:在以下所有情况下,Maven假设Maven Central Repository和Ivy - IvyRoundup Repository。
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