我使用JLine库来处理控制台输入和输出。
Terminal terminal = TerminalFactory.getFlavor(TerminalFactory.Flavor.valueOf("UNIX"));
terminal.init();
terminal.setEchoEnabled(true);
ConsoleReader console = new ConsoleReader(System.in,System.out);
int key = console.readCharacter();我使用JLine v2.6。回声不起作用。上面的代码有什么问题?有人能帮忙吗?
厌倦了搜索像JLine这样的其他库。还有其他Java库来处理控制台输入吗?
发布于 2012-06-15 19:48:54
JLine在运行它的每个平台上都使用本机代码。某些平台上的一些终端没有正确的设置,使其能够立即运行。
由于这些平台上的本机终端,默认行为在平台之间有所不同,但是一旦您正确设置和配置了它,它就会非常好地工作。很可能您的问题是终端仿真设置,而与JLine无关。
尽管如此,我在OSX ( bash )、Windows和RHEL/Centos ( bash )上都取得了很大的成功。
发布于 2012-12-02 20:58:11
ConsoleReader的readCharacter();似乎没有回音,但readLine()和readLine(String prompt)有。
查看(容易获得) console.readCharacter()方法的源代码,它显式调用(私有) clearEcho(),该方法通过向后移动指针来清除回声。
虽然文档有点薄,因为jLine被设计成与GNU readLine和BSD editLine兼容,但重点似乎是为行处理提供控制台支持。
我假设提供了字符处理,但您将负责回显该字符。
https://stackoverflow.com/questions/11046593
复制相似问题