我需要用 Java 编写一个简单的命令行应用程序。使用一个负责解析命令并处理标志和可选/强制参数之类的库会很好......
更新
具有内置 TAB 完成功能的东西会特别棒。
我需要用 Java 编写一个简单的命令行应用程序。使用一个负责解析命令并处理标志和可选/强制参数之类的库会很好......
更新
具有内置 TAB 完成功能的东西会特别棒。
我使用Apache Commons CLI 库进行命令行参数解析。它相当容易使用并且有相当好的文档。
您选择哪个库可能取决于您喜欢哪种样式的选项(“--gnu-style”或“-javac-style”)。
当您正在寻找可以简化开发交互式 shell 应用程序的库时,我建议您使用Cliche。
在我们公司,我们使用JewelCli,它使用带注释的 Java 接口定义来以声明式风格描述命令行接口。
轻巧易用,我会推荐它。
我已经广泛使用了Java Simple Argument Parser。它处理各种选项类型,具有精心设计的库(包括编写自定义解析器的选项),并在 JavaDocs 和在线.
我认为您对制表符完成的渴望将由 shell 而不是命令行解析库来处理。
有一个用于命令行解析的 GNU getopt 库的 Java 端口。对于命令编辑和 TAB 完成,有 JLine(正如 mmyers 已经推荐的那样)。
也值得一看--jopt-simple。
它“尝试尊重 POSIX getopt() 和 GNU getopt_long() 的命令行选项语法。” 它似乎有一些社区吸引力,特别是作为OpenJDK选择的命令行解析库。
此外,正如 Brett 所提到的,制表符补全通常由您的 shell 提供——您将编写 shell 函数来提供所需的功能。
ps 抱歉重复的答案,但这个问题几乎与用于解析命令行参数的 Java 库相同?
我尝试了一些库并最终使用了argparse4j。这是 Python 的argparse的一个非常好的 Java 端口。
我用过JSAP。我发现它很稳定并且有据可查。
我不确定我理解您所说的“内置 TAB 完成”是什么意思。能否详细说明。