2013-09-30 60 views
2

我想在用戶按'a'鍵時終止的java中實現一個簡單的程序(帶有永久循環)。我可以使用system.in來完成,但用戶應該按下'a'後按Enter鍵。我希望程序在按'a'後立即終止。是否有任何方法可以做到這一點。我發現使用JNI是一種解決方案,但我不喜歡使用第三方庫,因爲這只是一個簡單的代碼。在java控制檯應用程序中實現一個關鍵監聽程序

回答

1

但我不喜歡使用第三方庫,因爲這只是一個簡單的代碼。

然後它不能完成。

標準Java控制檯無法響應單鍵按壓,所以所有解決方案都需要第三方或JNI/JNA或非控制檯(gui)解決方案。

+0

感謝氣墊船Full of Eels,是否有任何代碼可以使用JNI庫來實現?這將會是一個很好的幫助。 –

+0

@HeshithaHettihewa:我自己並沒有使用JNI。雖然這種解決方案僅限於Windows機器,但我已經使用了一個由套接字綁定到Java應用程序的小型AutoIt應用程序來解決類似的問題。也有第三方控制檯可用,可能會允許這個工作。 –

+0

好的,謝謝我會做一些第三方庫的研究,可以幫助。 –

1

幾年前,我應對了這個問題,或者甚至更多。我發現了一個在Ubuntu系統中爲我工作的技巧。技巧是在執行應用程序之前調用

stty -icanon min 1 

;這個相同的技巧被用作已經用於Windows環境的庫jline的一部分。

+0

感謝FabioDch.Is有沒有辦法在Windows環境中做到這一點? –

+0

不,對不起...也許你可以嘗試創建一個隱藏的JFrame,或類似的東西,並聽取一些keyEvent ...但它只不過是一個黑客。正如Hovercraft所說:「一個標準的Java控制檯無法響應單鍵按壓」。 – FabioDch

+0

好吧我現在明白了。我會嘗試使用庫。謝謝你的答覆。 –

相關問題