2012-10-28 86 views
0

我希望編寫的應用程序非常大,但需要作爲服務運行。我計劃使用FireDaemon將其轉換並作爲一項服務運行,但只有在推送特定的密鑰之前,它纔會無所作爲。等待Java按鍵

我嘗試使用DataInputStream和DO/while循環這將等待一個按鍵,這樣的事情:

do { 
    char keyPressed = input.readChar(); 
} while (keyPushed != null); 

System.out.println("You pushed: " + keyPushed); 

沒有對這個簡單的話題那麼多信息,我覺得古怪。在Basic中,我們曾經使用inkey $來等待一個鍵,Java必須有類似的東西,但我不能把它放在手指上。

任何幫助將是很好的。

謝謝。 鮑勃·格蘭特, 賓夕法尼亞

+1

readChar阻塞呼叫。你想擁有它還是想聽一個單獨的線程按鍵? –

回答

0

如何:

if (System.in.available() > 0) 
    System.in.read(); 
0

如果我讀你的問題正確,你想要你的應用程序在Windows操作系統後臺,直到特定的組合鍵運行中輸入 - 例如一個熱鍵。你無法單獨使用Java來完成這項工作,但sdk並沒有提供這樣的接口。你將需要在C中編寫一個輔助程序,並使用JNI作爲橋樑。

這篇文章應該會幫你一下 - Global hotkeys for Java applications under Windows OS