是否有良好的Java库可以帮助构建命令行应用程序? [关闭]

问题描述 投票:40回答:10

我需要用Java编写一个简单的命令行应用程序。使用一个负责解析命令的库并处理标志和可选/强制参数之类的事情会很好。

UPDATE

内置TAB完成的东西会特别棒。

java shell command-line interactive picocli
10个回答
26
投票

我已经使用Apache Commons CLI library进行命令行参数解析。它相当容易使用,并有reasonably good documentation

您选择哪个库可能取决于您喜欢哪种选项(“ - gng-style”或“-javac-style”)。


0
投票

我尝试了几个库,最后使用argparse4j。这是Python的argparse非常好的Java端口。


20
投票

JLine看起来很有帮助。

JLine是一个用于处理控制台输入的Java库。它的功能类似于BSD editline和GNU readline。熟悉现代shell(例如bash和tcsh)的readline / editline功能的人会发现JLine的大多数命令编辑功能都很熟悉。

它确实列出了其features中的标签完成。


8
投票

当您正在寻找一个简化开发交互式s​​hell应用程序的库时,我建议使用Cliche


6
投票

看看arg4j


4
投票

在我们公司,我们使用JewelCli,它使用带注释的Java接口定义以声明式样式描述命令行界面。

轻巧易用,我推荐它。


3
投票

我广泛使用了Java Simple Argument Parser。它处理各种选项类型,具有精心设计的库(包括编写自定义解析器的选项),并在JavaDocs和online中提供了良好的文档。

我认为你对标签完成的渴望将由shell而不是命令行解析库来处理。


1
投票

有一个用于命令行解析的Java port of GNU getopt library。对于命令编辑和TAB完成,有JLine(正如mmyers已经推荐的那样)。


1
投票

它也值得一看--jopt-simple

它试图遵守POSIX getopt()和GNU getopt_long()的命令行选项语法。它似乎有一些社区牵引力,特别是命令行解析OpenJDK的首选lib。

另外,正如Brett所提到的,选项卡完成通常由shell提供 - 您可以编写shell函数来提供所需的功能。

附:对不起,重复的答案,但这个问题几乎与Java library for parsing command-line parameters?相同


0
投票

我用过JSAP。我发现它很稳定并且有很好的记录。

我不确定我理解“内置TAB完成”的含义。你能详细说明吗?

© www.soinside.com 2019 - 2024. All rights reserved.