在Java中,捕获<tab>击键的最佳方法是什么?

Wil*_*lco 4 java keystrokes

我在Java命令行应用程序中捕获<tab>键击时遇到问题.使用System.in.read()我在点击Tab键时似乎没有得到任何东西.解决这个问题的最佳方法是什么?

为了给出一些上下文,我试图允许用户点击tab键命令,让它自动完成命令(就像你在bash shell中做的那样).如果有更好的方法来实现这一点,我愿意接受建议(也许使用System.in.read()不是解决这个问题的最佳方法吗?).

Pau*_*aul 7

看看JLine吧.我自己没有用过它.它使用Windows DLL(使用JNI)并且它支持linux以将控制台切换到字符/原始模式而不是缓冲模式.我以前从未使用过这个,所以使用风险自负.我也不是100%肯定它是否会解决你的问题,但值得一试:)

编辑:我可以确认它确实有效

ConsoleReader cr = new ConsoleReader();
while (cr.readVirtualKey() != 0x09){
  //loop till Tab is pressed
}
Run Code Online (Sandbox Code Playgroud)

再次编辑:该库确实包含命令行的自动完成功能(通过按Tab键)...享受:)