У меня есть некоторые странные проблемы с java-консолью на моем сервере 10.04 (на самом деле это консоль сервера minecraft, но я считаю, что это общая проблема, а не какая-то специфическая для Minecraft): клавиши со стрелками не распознаются должным образом. Всякий раз, когда они используются внутри Java-консоли, они производят что-то вроде этого:
^[[A ^[[B ^[[C ^[[D
Тем не менее, они отлично работают в остальной части системы.
Я уже пробовал несколько вещей, таких как проверка системных локалей или установка определенных локалей только для Java, но без какой-либо удачи. Любые идеи, в чем причина этого и как это можно исправить?
Спасибо заранее.
Редактировать (29 октября): Прочитав первый ответ и опробовав несколько вещей, я выяснил еще немного об этой проблеме. Теперь поверх оболочки работает программа, в основном эта проблема вызвана проблемами с jline-библиотекой java, которая используется java-приложением (или, если точнее, его консолью).
В целях тестирования я переключился с OpenJDK6 на OrcaleJDK6, и проблема исчезла. Тестирование OpenJDK7 невозможно, так как нет версии для 10.04. Я предполагаю, что некоторые соединения с jline, так как это библиотека, отвечающая за обработку ввода и вывода консоли. Возможно, версия, используемая приложением, несовместима с более старой версией OpenJDK, используемой на сервере. Но совместимо с более современной версией oracle-java, которую я установил вручную. Я до сих пор не выяснил, как jline-пакет ubuntu вписывается в эту картину. Для меня нет разницы между тестированием с и без него.
Буду снова редактировать этот пост, если я что-нибудь выясню. Если у кого-нибудь есть идея, пожалуйста, дайте мне знать.
Некоторые консольные программы (это может быть программа, работающая на вершине удара, такой как sh
) не подавляют нажатия клавиши CTRL такой как в † ‘ стрелка или вниз в † “ стрелка и т.д. В тех консолях, Вы также доберетесь, эхо нажатий клавиш как Вы отправило ^[[A ^[[B ^[[C ^[[D
. Это не большая проблема на самом деле.
Ваша оболочка по умолчанию bash
, который подавляет нажатия клавиш клавиш со стрелками. В отличие от удара, эти sh
оболочка не подавляет штрихи клавиши со стрелкой. Можно попробовать его путем выполнения sh
на терминале и нажатия клавиш со стрелками. Для выхода от тех консолей необходимо использовать определенную команду, характерную для программ, большую часть времени, это quit
или exit
. В Вашем случае сервера Minecraft это было бы stop
.