对于用 Java 编写命令行应用程序,解析和管理参数和参数的最佳库是什么?
我应该使用什么库来处理我的 Java 程序的 CLI 参数?
软件推荐
爪哇
命令行
2021-10-31 22:48:30
3个回答
picocli与其他 Java CLI 库不同:
- 它被设计为包含在源代码中。这允许用户运行基于 picocli 的应用程序,而不需要 picocli 作为外部依赖项。
- 在底层平台支持时使用 ANSI 颜色生成精美且易于定制的使用帮助。
- 在受支持的平台上为您的 Java 命令行应用程序自动完成
使用帮助信息示例:
快速概览:
- 轻松的命令行解析 - 只需注释字段
- 强类型的一切 - 命令行选项以及位置参数
- 完全支持 GNU 样式和 POSIX 集群短选项(因此它处理
<command> -xvfInputFile
得很好<command> -x -v -f InputFile
) - 一个允许最小、最大和可变参数数量的模型,例如
"1..*"
,"3..5"
- 子命令
- 适用于 Java 5 及更高版本
- 结构良好的用户手册
使用帮助是您的应用程序的面孔,所以要有创意,玩得开心!
更新:
Picocli 也得到积极维护。自原始帖子以来,添加了许多新功能,例如:
- 编程 API 和注释 API
- 依赖注入容器集成
- JLine 集成:委托给 AutoComplete 以实现您的命令的 Completer 实现
- 接口方法可以用
@Option
or注释@Parameters
(picocli 创建一个返回匹配选项的合成实现) - 类方法可以用
@Option
or注释@Parameters
(这样你就可以验证选项和位置参数) - 支持
@Command
额外紧凑代码的方法 - 资源包的国际化
免责声明:我是作者。
我的选择是JCommander。
截至 2016 年 10 月,必须开始一个新项目,最后决定以聪明的方式进行论证。刚刚比较了Jopt-simple、JCommander、args4j。
选择理由:只有 JCommander 和 args4j 有注解,只有 JOpt-simple 和 JCommander 有很好的教程。
其它你可能感兴趣的问题