JLine
JLine 是一个用来处理控制台输入的Java类库,目前最新的版本是0.9.94。
其官方网址是http://jline.sourceforge.net。
在介绍JLine之前,首先还是介绍一下Java 6中的Console类,以便进行对比。
3 JLine
JLine不依赖任何core Java以外的类库,但是其不是纯Java的实现。
在Windows平台下,JLine通过自带的.dll文件初始化终端。jline.jar中包含了jline32.dll和jline64.dll,在Windows平台上使用的时候, JLine会自动将其解压缩到临时目录并进行加载。
在Unix或者Max OS X平台下,JLine通过stty命令初始化终端。例如通过调用stty -icanon min 1将控制台设置为character-buffered模式。以及通过调用stty -echo禁止控制台回显。在修改终端的属性之前,JLine会对终端的属性进行备份,然后注册一个ShutdownHook,以便在程序退出时进行恢复。由于JVM在非正常退出时(例如收到SIGKILL信号)不保证ShutdownHook一定会被调用,因此终端的属性可能无法恢复。
JLine使用起来非常简单,jline.jar中一共只有20几个类,源码也不难懂。以下是个简单的例子,其中readLine函数的参数指定了命令行提示符:
Java代码 收藏代码
ConsoleReader reader = new ConsoleReader();
String line = reader.readLine(">");

浙公网安备 33010602011771号