我正在尝试使用Java和JNA从控制台获取字符输入而无需用户输入。
我一直在使用this resource来实现这一点,但它没有OS X支持。它在Windows和* nix(Ubuntu测试)上按预期工作,但是在OS X上按键出现在终端并要求您按Enter键。
我使用ConcurrentLinkedQueue来处理键击,外部线程监听它们并将它们添加到队列中,该队列在主线程的每个tick上轮询。
如果有人可以帮助将OS X支持添加到上述资源中,或者建议更好的方法来解决同样的问题,那将非常感激。
谢谢!
答案 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