有没有好的Java库可以帮助构建命令行应用程序?
问题描述:
我需要用Java编写一个简单的命令行应用程序。这将是不错的使用需要解析的命令的关怀和照顾的东西像标志和可选/强制性参数库...有没有好的Java库可以帮助构建命令行应用程序?
UPDATE
已经内置选项卡完成的东西会特别好。
答
我已使用Apache Commons CLI library进行命令行参数分析。这相当容易使用,并有reasonably good documentation。
您选择的库可能归结为您喜欢哪种风格的选项(“--gnu-style”或“-javac-style”)。
更新:picocli TAB completion最近成为可用,可能会有兴趣。不知道任何其他命令行解析库,它提供OP中请求的命令行完成。
答
我已广泛使用Java Simple Argument Parser。它处理各种选项类型,具有设计良好的库和库(包括编写自定义解析器的选项),并在JavaDocs和online中提供良好的文档。
我认为你对tab完成的愿望将由shell而不是命令行解析库来完成。
答
这也值得看看--jopt-simple。
它试图遵守POSIX getopt()和GNU getopt_long()的命令行选项语法。 它似乎有一些社区的牵引力,特别是OpenJDK的命令行解析lib的选择。
另外,正如Brett所说,tab完成通常由shell提供 - 您将编写shell函数来提供所需的功能。
p.s.对不起,重复的答案,但这个问题几乎相同Java library for parsing command-line parameters?
通常,CLI表示您的应用程序从命令行获取参数以确定以何种方式运行。根据你的更新,你的意思是你想在你的Java应用程序中有一个交互式的shell风格的进程? (如irb?) – 2009-01-12 16:59:03
是的,我确实......你是正确的 – carrier 2009-01-12 17:02:35
irb是交互式ruby。我认为,如果不使用“命令行”或“cli”这个短语,您可以重新提问您的问题。也许“有没有库在java中创建交互式shell?”并为清晰起见举例说明您的应用的使用情况。 – 2009-01-12 18:29:38