Scala включает в свой дистрибутив jline
(со слегка измененной упаковкой), поскольку использует его в REPL.Обычно он не загружается, но если вы знаете, где находится ваш каталог Scala lib, вы можете добавить его в classpath.Если вы добавите его в classpath, то это будет работать:
object Key extends App {
val con = new tools.jline.console.ConsoleReader()
println( con.readVirtualKey() )
}
(обратите внимание, что этот метод даст ^ P ^ N ^ B ^ F для соответствия вверх, вниз, влево и вправо соответственно, соответственностандартные клавиши управления).Но это также переопределит стандартное поведение System.in.read()
, поэтому вы можете передать ему массивы длины 1, чтобы получить следующий ожидающий байт (и проверить наличие ожидающих байтов с System.in.available
, которое должно быть больше 1 для клавиш со стрелками).