使用JNA从控制台抓取字符而不输入

时间:2016-05-10 15:08:59

标签: java macos console jna

我正在尝试使用Java和JNA从控制台获取字符输入而无需用户输入。

我一直在使用this resource来实现这一点,但它没有OS X支持。它在Windows和* nix(Ubuntu测试)上按预期工作,但是在OS X上按键出现在终端并要求您按Enter键。

我使用ConcurrentLinkedQueue来处理键击,外部线程监听它们并将它们添加到队列中,该队列在主线程的每个tick上轮询。

如果有人可以帮助将OS X支持添加到上述资源中,或者建议更好的方法来解决同样的问题,那将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

自我解决,如果你执行你的程序:

#!/bin/sh
stty raw -echo
java -jar ProgramName.jar

在shell脚本中,它可以像OS X上的Unix一样正常工作。

" stty raw -echo"

的解释
"stty" is a command to change terminal settings
"raw" changes the terminal to non-canonical mode
"-echo" makes keypresses not show up when you type them