Como ler um único char do console em Java (como o usuário digita)?

Existe uma maneira fácil de ler um único char do console quando o usuário o digita em Java? É possível? Eu tentei com esses métodos, mas todos eles esperam que o usuário pressioneentrar chave:

char tmp = (char) System.in.read();
char tmp = (char) new InputStreamReader(System.in).read ();
char tmp = (char) System.console().reader().read();           // Java 6

Eu estou começando a pensar que System.in não está ciente da entrada do usuário atéentrar é pressionado.

questionAnswers(5)

yourAnswerToTheQuestion