注意:此问题是Stack Overflow上此封闭问题的更新版本。
#1 楼
picocli与其他Java CLI库不同:它旨在包含在源代码形式中。这样一来,用户就可以运行基于picocli的应用程序,而无需picocli作为外部依赖项。
在基础平台支持的情况下,使用ANSI颜色生成精巧的定制使用帮助。
Java自动完成受支持平台上的命令行应用程序
示例用法帮助消息:
快速概述:
轻松的命令行解析-只需注释字段
严格键入所有内容-命令行选项以及位置参数
全面支持GNU样式和POSIX集群短选项(因此它可以处理
<command> -xvfInputFile
和<command> -x -v -f InputFile
) 允许最小,最大和可变数量的参数(例如
"1..*"
,"3..5"
)的Arity模型子命令
可与Java 5及更高版本配合使用
结构合理用户手册
使用帮助是您应用程序的面子,因此请发挥创造力并尽情玩乐!
更新:
Picocli也得到了积极维护。从原始帖子开始,添加了许多新功能,例如:
程序化API以及注释API
依赖注入容器集成
JLine集成:委托给可以使用
@Option
或@Parameters
注释命令的Completer实现的AutoComplete接口方法(picocli创建返回匹配选项的综合实现)可以使用
@Option
或@Parameters
注释类方法(因此您可以验证选项和位置参数)支持
@Command
方法以实现更紧凑的代码与资源束进行国际化
免责声明:我是作者。
评论
我已将picocli的选项管理添加到项目中,并且与我的项目集成非常容易。看起来不错,并且具有我打算在以后添加的更多高级功能。
–已结盟
18-09-14在16:42
#2 楼
我建议使用JOpt Simple。它“试图遵循POSIX getopt()和GNU getopt_long()的命令行选项语法”。它具有社区吸引力,尤其是命令行解析OpenJDK本身的首选库。为了进行比较,这是一个相对最新的(截至2015年1月)相关服务库的列表。目的。
picocli(具有ANSI颜色和自动完成功能)
JArgs
Jakarta Commons CLI
TE代码(它具有命令行解析库。)
argparser
GNU的Java端口getopt
Args4J
JSAP
JOpt Simple
CLAJR
CmdLn
JewelCli
JCommando
parse-cmd
JCommander
评论
我刚刚尝试了Commons CLI库,发现使用它非常令人沮丧,切换到JCommander并没有后悔!使用Commons CLI来完成诸如接受未知选项之类的简单操作非常可笑。另一方面,它是JCommander的一线工具。
–阿迪尔·侯赛因(Adil Hussain)
17年5月23日在12:55
请看看picocli。它易于使用,功能丰富。
–雷姆科·波玛(Remko Popma)
'18 Sep 8'在3:18
#3 楼
我的选择是JCommander。自2016年10月起,必须启动一个新项目,并最终决定以明智的方式进行论证。只是比较了Jopt-simple,JCommander和args4j。
选择原因:只有JCommander和args4j带有注释,只有JOpt-simple和JCommander具有出色的教程。
评论
起初我不确定是否允许这个问题,但是确实如此。但是,当您链接到关于SO的一个很好回答的问题时,我仍然怀疑它在这里的价值。我将问题移至此处的原因是,该问题仍然相关,但是由于不合适,因此SO问题已被关闭。这是一个合适的住所,问题可以保留为“活着”。
封闭式问题仍然可用meta.stackexchange.com/questions/19231/…