Java的最佳CLI解析器

Java的最佳CLI解析器,java,command-line,Java,Command Line,什么样的Java CLI解析器易于使用且比其他解析器更具可伸缩性?我不认为可伸缩性是一个因素。你想要的是功能完整且易于使用的东西。 我主要使用API,但我通常不喜欢它的API(出于习惯而使用它) 你也可以试试impl,我个人没有用过。这里有一些最流行的。它们的功能都非常完善,使用了前两个,我可以推荐它们 Commons CLI Java Gems picocli(具有彩色用法帮助和自动完成功能) JArgs GetOpt 编辑:为了完整起见,我还遇到了其他一些问题 JOpt Si

什么样的Java CLI解析器易于使用且比其他解析器更具可伸缩性?

我不认为可伸缩性是一个因素。你想要的是功能完整且易于使用的东西。 我主要使用API,但我通常不喜欢它的API(出于习惯而使用它)


你也可以试试impl,我个人没有用过。

这里有一些最流行的。它们的功能都非常完善,使用了前两个,我可以推荐它们

  • Commons CLI

  • Java Gems

  • picocli(具有彩色用法帮助和自动完成功能)

  • JArgs

  • GetOpt

编辑:为了完整起见,我还遇到了其他一些问题

  • JOpt Simple

  • Args4J

  • ArgParser

  • 自然CLI

  • TE代码

  • JSAP

  • CLAJR

  • CmdLn

  • JewelCli

  • JCommando

  • 解析cmd


JLine是一个用于在Java中构建类似shell的应用程序的库

  • Groovy正在将其用于其shell实现:
  • JLine也由(JRuby)使用
自2002年以来,该项目于托管,最后一次发布于2011年4月

但在2009年,该项目已经启动,并从2009年11月(版本2.0)开始。撰写此答案时的最后版本2.x是2016年5月的2.14.2


2016年10月,新的。

Thx。现在我将使用Commons CLI,因为我喜欢Appache的产品。您可以始终依赖ApacheCommons作为坚如磐石的实现。最好的实现是在直截了当、逻辑性强的情况下使用Jargs,而不是使用1个文件&600 SLOC。也很容易获得剩余的参数:String[]otherArgs=parser.getRemainingArgs();您还可以在《我记得》中找到标记有“命令行解析器”的库,当我们使用JARG时,我们编写了自己的接口来包装它的API。它工作得很好,但使用起来并不像可能的那么简单。