使用JNA无需输入即可从控制台获取字符

Using JNA to grab characters from console without enter

我正在尝试将 Java 与 JNA 一起使用,以便在用户无需按回车键的情况下从控制台获取字符输入。

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

我正在使用 ConcurrentLinkedQueue 来处理击键,用一个外部线程侦听它们并将它们添加到队列中,该队列在主线程的每个滴答声中轮询。

如果有人可以帮助为上述资源添加 OS X 支持,或提出解决相同问题的更好方法,将不胜感激。

谢谢!

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

#!/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