Repolode
remkop

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。

收录于专题

标签

常见问题

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 数据每日更新。

相关项目