Search code examples
javaconsolejava.util.scanneruser-input

Recognize arrow keys in Java Scanner or Console application


I am writing a Java application that uses both Scanner and Console to get input from the user. I would like to add command history support so that the user can use the ARROW KEYS to search previous inputs (similar to a terminal). Is there a way to do this? Right now, when I use either the Scanner or the Console, I get weird symbols like ^[[A when pressing the arrow keys.

I have read about KeyListener and KeyEvent, but my application does not use a GUI.

Thanks!


Solution

  • Good question - +1'd. On Windows, I would SetConsoleMode to change the console to take raw input, but on *Nix it looks like there is more work involved. Unfortunately I don't have any code that I can show you right now, but have a look at this link and see if it helps.

    http://www.darkcoding.net/software/non-blocking-console-io-is-not-possible/