一个功能完整的 Rust 命令行参数解析库,支持声明式和过程式两种写法。
remkop/picocli
一个 Java 命令行应用框架,支持注解和编程两种方式,提供子命令、ANSI 彩色帮助和 Tab 自动补全。
- Star
- 5,453
- Fork
- 498
- 未关闭 Issue
- 186
- 最近提交
- 3个月前
这是什么?
Picocli 是一个用于构建命令行应用的 Java 库。开发者通过注解标注字段或方法上的选项和参数,picocli 会把命令行输入自动转换为强类型的数据。它支持类似 git 的子命令及嵌套子命令、POSIX 风格的短选项合并、自定义类型转换和密码输入等功能,并能自动生成带 ANSI 颜色的用法帮助。
在更复杂的解析场景下,它还支持互斥与互相依赖的选项、参数组、可取反的选项、形如 -Dkey=value 的 Map 选项,以及用于超长命令行的 @-文件。它可以生成 bash 和 zsh 的补全脚本,并提供 JLine 集成以构建交互式 shell。
项目以单个源文件形式发布,可以直接复制进应用源码中,使终端用户无需额外依赖 picocli。应用也可以编译为 GraalVM 原生镜像,项目内置了相应的注解处理器。它支持从 Java 5 起的版本,也可在 Groovy、Kotlin、Scala 等语言中使用。
核心功能
- 01同时提供注解式和编程式 API 来定义命令、选项和参数。
- 02支持类似 git 的子命令及嵌套子命令。
- 03自动生成带 ANSI 颜色的用法帮助信息。
- 04提供 bash 和 zsh 的 Tab 自动补全脚本。
- 05可以以单个源文件形式直接嵌入应用,无需额外依赖。
- 06支持编译为 GraalVM 原生镜像。
适用场景
- 用 Java 或 Kotlin 开发带子命令和帮助信息的命令行工具。
- 借助 GraalVM 将 CLI 打包为启动快速的原生可执行文件。
- 为现有 Java 命令行应用增加 shell 自动补全。
- 将旧的 Java 命令行解析代码迁移到更现代的注解式 API。
收录于专题
标签
#java#cli#command-line#argument-parsing#graalvm#autocomplete#subcommands#annotations#ansi#ansi-colors
常见问题
- picocli 是什么?
- 一个 Java 命令行应用框架,支持注解和编程两种方式,提供子命令、ANSI 彩色帮助和 Tab 自动补全。 Picocli 是一个用于构建命令行应用的 Java 库。开发者通过注解标注字段或方法上的选项和参数,picocli 会把命令行输入自动转换为强类型的数据。它支持类似 git 的子命令及嵌套子命令、POSIX 风格的短选项合并、自定义类型转换和密码输入等功能,并能自动生成带 ANSI 颜色的用法帮助。
- picocli 可以免费使用吗?用的什么许可证?
- picocli 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- picocli 还在维护吗?
- 半年内有更新。picocli 最近一次提交是在 2026年8月16日。
- picocli 适合用来做什么?
- 用 Java 或 Kotlin 开发带子命令和帮助信息的命令行工具。 借助 GraalVM 将 CLI 打包为启动快速的原生可执行文件。 为现有 Java 命令行应用增加 shell 自动补全。 将旧的 Java 命令行解析代码迁移到更现代的注解式 API。
- 在哪里获取 picocli?
- 源代码和安装说明在 GitHub 上:https://github.com/remkop/picocli
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1.7万1307RustApache-2.0更新于 5天前
用于构建命令行工具的 Go 声明式库,支持子命令、参数与 shell 补全。
2.4万+6 本周1858GoMIT维护活跃更新于 4天前
一个用于快速构建可组合命令行界面的 Python 工具包,支持嵌套命令与自动生成帮助页面。
1.8万3296PythonBSD-3-Clause维护活跃更新于 18小时前
一个类型安全的 Swift 命令行参数解析库,可自动生成帮助信息。
3802+3 本周433SwiftApache-2.0维护活跃更新于 8天前
面向 Bash、Zsh、Fish 等 shell 的命令模板与代码片段管理工具,像 IntelliSense 一样辅助终端输入。
1303+1 本周25RustApache-2.0维护活跃更新于 10天前
面向 macOS、Linux 等系统的交互式命令行 shell,开箱即用,无需额外配置。
3.4万+38 本周2489RustOther更新于 4天前