Java CLI界面设计:使用框架还是库?

25

我目前正在开发一个小型实用程序,只需要命令行界面。我开始想知道Java是否提供了任何标准的方式来创建CLI,就像Swing和类似的GUI存在一样。我对命令行参数和解析它们不是很感兴趣,而是对用户与程序进行基于命令的交互所感兴趣。这适用于GUI根本不必要或不是使用程序的选项的情况。

通过谷歌搜索,结果几乎只有针对初学者学习Java基础教程的BufferedReader等方法进行与用户进行基本交互,并询问姓名并打印“Hello World!”等简单UI的方法。

是否有专注于提供快速实现更复杂的CLI UI的良好框架的库,还是每个人都以ad hoc方式为其自己的实用程序实施这样的功能?

也许有人知道在不是所有东西都是图形化的时候创建的实现模式?那也将是有用的资源。


Apache Commons CLI(http://commons.apache.org/cli/)难道不能帮助你吗? - sateesh
3
不,Apache Commons CLI 主要用于解析命令行参数,对于 UI 的设计和实现并没有太多贡献。 - Fuu
5个回答

8

您还可以查看 Clamshell-cli 或 spring shell:

  • Clamshell-cli 相对简单易用: 您可以查看 jmx-cli 了解其功能。

  • Spring Shell 更为强大 (支持选项补全等),由 Spring Roo 抽取并独立发行。


8

这看起来是一个不错的方法,绝对是目前为止最相关的。 - Fuu
不幸的是,它需要在 Windows 上安装 Cygwin。 - nilo de roock

3
有一个名为JLine的项目,它提供跨平台支持的通用命令行输入处理:

http://jline.sourceforge.net/

虽然更像是支持库而不是框架。

事实上,目前并没有一个真正的框架可以将CLI嵌入到Java中,而jline是最突出的用于此类工作的库。我认为它被用作Groovy解释器在命令行模式下的例子。 - Riduidel
看 JLine 的话,它主要可以通过为输入的命令提供自动完成来帮助。虽然有用,但并不真正符合标准。 - Fuu

1

2
有趣的链接,这些链接基本上将Swing/AWT GUI移植到基于文本的终端中。问题在于,它并没有减少快速CLI UI的开发工作量,因为那样的话,你可能会选择在Swing中完成,并拥有图形界面。 :) - Fuu

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接