我在Java命令行应用程序中捕获<tab>键击时遇到问题.使用System.in.read()我在点击Tab键时似乎没有得到任何东西.解决这个问题的最佳方法是什么?
为了给出一些上下文,我试图允许用户点击tab键命令,让它自动完成命令(就像你在bash shell中做的那样).如果有更好的方法来实现这一点,我愿意接受建议(也许使用System.in.read()不是解决这个问题的最佳方法吗?).
看看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键)...享受:)
| 归档时间: |
|
| 查看次数: |
3454 次 |
| 最近记录: |