我想在用户按'a'键时终止的java中实现一个简单的程序(带有永久循环)。我可以使用system.in来完成,但用户应该按下'a'后按Enter键。我希望程序在按'a'后立即终止。是否有任何方法可以做到这一点。我发现使用JNI是一种解决方案,但我不喜欢使用第三方库,因为这只是一个简单的代码。在java控制台应用程序中实现一个关键监听程序
回答
但我不喜欢使用第三方库,因为这只是一个简单的代码。
然后它不能完成。
标准Java控制台无法响应单键按压,所以所有解决方案都需要第三方或JNI/JNA或非控制台(gui)解决方案。
几年前,我应对了这个问题,或者甚至更多。我发现了一个在Ubuntu系统中为我工作的技巧。技巧是在执行应用程序之前调用
stty -icanon min 1
;这个相同的技巧被用作已经用于Windows环境的库jline的一部分。
感谢FabioDch.Is有没有办法在Windows环境中做到这一点? –
不,对不起...也许你可以尝试创建一个隐藏的JFrame,或类似的东西,并听取一些keyEvent ...但它只不过是一个黑客。正如Hovercraft所说:“一个标准的Java控制台无法响应单键按压”。 – FabioDch
好吧我现在明白了。我会尝试使用库。谢谢你的答复。 –
- 1. 跨应用程序实现位置监听程序
- 2. 基于控制台的密钥监听程序Java
- 3. 在控制台应用程序中解析Java键盘输入
- 4. 如何在.NET Core控制台应用程序中实现MVVM?
- 5. 如何在控制台应用程序中实现MVP?
- 6. java:控制台应用程序主线程产生一个按键侦听器线程
- 7. Interruptable Java控制台应用程序
- 8. Java控制台应用程序
- 9. Java控制台应用程序清理
- 10. Java控制台应用程序锁定
- 11. C#应用程序在控制台中使用另一个应用程序
- 12. BlackBerry - 后台应用程序监听开始和前台应用程序
- 13. 在一个单独的线程中监听控制台应用程序的输入
- 14. 监控appdynamics中的java应用程序
- 15. TIdTCPServer.OnExecute在控制台应用程序中
- 16. 一个Java应用程序可以在同一台Linux机器上监视另一个Java应用程序吗?
- 17. 我如何制作一个实现KeyListener的控制台应用程序?
- 18. Java控制台程序
- 19. 监控应用程序监控Java桌面应用程序的性能
- 20. 如何在java的主程序的后台实现事件监听器?
- 21. 在Excel中实现监控“应用程序”
- 22. 我将控制台应用程序重新制作成WinForm应用程序。我现在无法从另一个控制台应用程序获得输出
- 23. Java小应用程序 - 鼠标和键监听器
- 24. 重新启动一个java控制台应用程序代码
- 25. 基于测试控制台的应用程序/程序 - Java
- 26. 将Java控制台程序转换为Web应用程序
- 27. 使用多线程的控制台应用程序中的键列表程序
- 28. 使用SNMP监控Java应用程序
- 29. 使用VisualVM监控Java应用程序
- 30. 用Java Applet实现键盘监听器
感谢气垫船Full of Eels,是否有任何代码可以使用JNI库来实现?这将会是一个很好的帮助。 –
@HeshithaHettihewa:我自己并没有使用JNI。虽然这种解决方案仅限于Windows机器,但我已经使用了一个由套接字绑定到Java应用程序的小型AutoIt应用程序来解决类似的问题。也有第三方控制台可用,可能会允许这个工作。 –
好的,谢谢我会做一些第三方库的研究,可以帮助。 –