【发布时间】:2013-09-30 17:47:29
【问题描述】:
我正在尝试在 java 中实现一个简单的程序(带有一个永久循环),当用户按下“a”键时该程序终止。我可以使用 system.in 来完成,但用户应该在按下“a”后按下 Enter 键.我希望程序在按下'a'后立即终止。有什么办法吗。我发现使用JNI是一种解决方案,但我不喜欢使用第三方库,因为这只是一个简单的代码。
【问题讨论】:
标签: java console-application keylistener
我正在尝试在 java 中实现一个简单的程序(带有一个永久循环),当用户按下“a”键时该程序终止。我可以使用 system.in 来完成,但用户应该在按下“a”后按下 Enter 键.我希望程序在按下'a'后立即终止。有什么办法吗。我发现使用JNI是一种解决方案,但我不喜欢使用第三方库,因为这只是一个简单的代码。
【问题讨论】:
标签: java console-application keylistener
但我不喜欢使用第三方库,因为这只是一个简单的代码。
那么就做不到了。
标准 Java 控制台无法响应单个按键、句号等所有解决方案都需要第三方或 JNI/JNA 或非控制台 (gui) 解决方案。
【讨论】:
我在几年前处理过这个问题,甚至更多。我发现了一个在 Ubuntu 系统中对我有用的技巧。诀窍是调用
stty -icanon min 1
在执行应用程序之前;同样的技巧被用作库jline 的一部分,该库已用于windows 环境。
【讨论】: