是否有针对java的控制台应用程序框架?
我将开始设计一个控制台应用程序。这意味着其行为类似于MySQL客户端,它会提示用户输入命令,然后执行这些命令(基本上是打开和侦听TCP端口,管理一些基本的数据库操作和服务器管理内容)。应用程序基本上接受连接并将数据返回给客户端 我希望这个应用程序在GUI和控制台模式下运行,具体取决于应用程序的启动方式(这里没有问题) GUI不是问题,而是控制台问题。 我需要的是一种定义一组命令的方法,它们可能有或没有任何数量的参数。此命令可提示确认、输入密码或返回一组数据。 我想让事情保持优雅、可维护,避免构建一个可能失控的“有限状态机” 我想实现以下目标:是否有针对java的控制台应用程序框架?,java,frameworks,console,command,Java,Frameworks,Console,Command,我将开始设计一个控制台应用程序。这意味着其行为类似于MySQL客户端,它会提示用户输入命令,然后执行这些命令(基本上是打开和侦听TCP端口,管理一些基本的数据库操作和服务器管理内容)。应用程序基本上接受连接并将数据返回给客户端 我希望这个应用程序在GUI和控制台模式下运行,具体取决于应用程序的启动方式(这里没有问题) GUI不是问题,而是控制台问题。 我需要的是一种定义一组命令的方法,它们可能有或没有任何数量的参数。此命令可提示确认、输入密码或返回一组数据。 我想让事情保持优雅、可维护,避免构建
[ready]> server:start;
Server started.
[running]> connections:list;
Conn IP Port
Name1 192.168.2.2 60000
Name2 192.168.2.4 60002
[running]> connections:close Name1;
1 connection closed.
[running]> server:stop;
password? ******
Server stopped.
[ready]>
有什么框架、工具或技术可以在Java上实现这一点吗?我过去使用过,没有做任何太复杂的事情,但它似乎有很多功能。最近发布了一个。这是Spring用来驱动Roo外壳的动力减去Roo部件。您可以将自己的命令插入其中,并利用其功能录制脚本、回放脚本、获取参数、更改提示等
我查看了它附带的示例,它有四个不同的类,可以添加或更改各种内容,而且看起来非常简单。实现这一点的一种方法是通过反射。
您可以定义字段
server
和connections
,并为它们提供所需的方法(start()stop()close()
)。然后在解析输入时,使用反射机制执行所需的方法。有一个命令行解析器。它于2017年9月推出,已经被Groovy、Micronaut和JUnit用作命令行
它有以下特点:
- 自动完成
- ansi颜色和样式
- 很好的用户帮助
- 支持子命令