我正在开发一个用 Java 编写的控制台应用程序。我要做的是处理用户键盘输入。当在终端中使用我们的程序启动一个长进程时,用户必须可以'q'
随时按下以停止该进程(该进程在单独的线程上运行)。
我尝试了几件事:
- 在另一个不同的线程中运行读取用户输入并向
InterruptedException
进程线程抛出的东西 - 使用 JLine 及其
ConsoleReader
- 使用 JLine 并添加一个
TriggeredAction
链接到键盘键
但每次,我都面临同样的问题:用户必须ENTER
按键,而我不希望这样。
如果您有任何想法或我的问题的实际解决方案,感谢您的帮助。
PS:请,如果您认为这是不可能的,请不要回答。我知道这是可能的。