Java CLI UI 设计:框架还是库? [关闭]
Posted
技术标签:
【中文标题】Java CLI UI 设计:框架还是库? [关闭]【英文标题】:Java CLI UI-design: frameworks or libraries? [closed] 【发布时间】:2011-01-25 22:13:52 【问题描述】:我目前正在开发一个只需要命令行界面的小型实用程序,并且我开始想知道 Java 是否提供了任何标准的创建 CLI 的方法,类似于用于 GUI 的 Swing 等。我对命令行参数和解析它们并不真正感兴趣,而是用户与程序使用它的基于命令的交互。这适用于 GUI 根本不需要或不是使用该程序的选项的情况。
在谷歌上搜索这个主题几乎只会得到关于如何使用 BufferedReader 等与用户进行基本交互的教程,旨在让人们学习 Java 的基础知识并编写简单的 UI 来询问名称并打印“Hello World! "等等。
是否有任何库专注于为快速实现更复杂的 CLI UI 提供良好的框架,或者这真的是每个人都以特殊方式为自己的实用程序实现的东西吗?
也许有人知道在并非一切都是图形的时候创建的实现模式?这也是有用的资源。
【问题讨论】:
Apache Commons CLI (commons.apache.org/cli) 不会帮助您吗? 不,Apache Commons CLI 确实是为解析命令行参数而设计的,并且对 UI 的设计或实现没有真正的贡献。 【参考方案1】:有一个名为 JLine 的项目为通用命令行输入处理提供跨平台支持:
http://jline.sourceforge.net/
更多的是支持库而不是框架。
【讨论】:
确实,Java 中没有真正的嵌入 CLI 的框架,而 jline 是此类工作最突出的库。例如,我认为它用于命令行模式下的 groovy 解释器。 看看 JLine,它主要通过为键入的命令提供自动完成来帮助。有用,但并不真正符合标准。【参考方案2】:我过去使用过 apache commons CLI 库并且对我来说效果很好:http://commons.apache.org/cli/
【讨论】:
【参考方案3】:尝试搜索 CURSES 和 java,例如 http://www.google.co.uk/search?q=curses+for+java 。很久以前 CHARVA (http://www.pitman.co.za/projects/charva/index.html) 看起来不错。
【讨论】:
有趣的链接,这些链接基本上将 Swing/AWT GUI 移植到基于文本的终端中。问题是它并没有减少作为快速 CLI UI 目标的开发工作,因为那时您还不如在 Swing 中完成并拥有图形界面。 :)【参考方案4】:也许是 CLI 工具包...
http://alexis.royer.free.fr/CLI/
【讨论】:
这看起来是一个不错的方法,绝对是迄今为止最相关的。 不幸的是它需要在 Windows 上使用 cgywin。【参考方案5】:你也可以看看Clamshell-cli或者spring shell:
Clamshell-cli 相对简单且易于使用:您可以查看jmx-cli 以获得一个很好的例子来说明可以用它做什么。
Spring Shell 更大但功能更全(制表符补全等)。已经从spring Roo中提取出来,作为一个独立的框架发布了
【讨论】:
以上是关于Java CLI UI 设计:框架还是库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
哪个 Java Web 框架最适合 Web 设计人员? [关闭]
从 ElementUI 源码的构建流程来看前端 UI 库设计
如何评价 React 实现的前端 UI 库 material-ui