#java #log4j #jline
#java #log4j #jline
Вопрос:
По какой-то причине мой многопоточный сервер netty не будет работать с автозаполнением в Windows, если быть точным (в моем первоначальном тестировании linux работал нормально) Я обнаружил, что приложение terminal console и jansi являются «решениями», которыми они были для многих проблем, кроме этой. Странная часть в этом заключается в том, что мой клиент запускает ту же функцию кода для вызова LineReader.readLine(«> «); отлично работает с автозаполнением почти с тем же кодом. Я понятия не имею, в чем проблема, потому что они оба вызывают один и тот же код в одном и том же порядке с одинаковыми зависимостями (за исключением некоторых зависимостей на стороне сервера)
Источник по адресу: https://github.com/Fernthedev/light-chat
Сервер прочитал код: https://github.com/Fernthedev/light-chat/blob/master/java/server/src/main/java/com/github/fernthedev/server/ServerCommandHandler.java
Клиент прочитал код: https://github.com/Fernthedev/light-chat/blob/master/java/client/src/main/java/com/github/fernthedev/client/WaitForCommand.java
StaticHandler (используется для чтения и настройки терминала и считывателя): https://github.com/Fernthedev/light-chat/blob/master/java/universalChat/src/main/java/com/github/fernthedev/universal/StaticHandler.java
И сервер, и клиент имеют основной класс с методом main(String[] args)
Комментарии:
1. Какую ошибку вы получаете?
2. Нет ошибки, вот в чем проблема. Он просто вставляет пробел табуляции, и если я нажимаю enter, он не отображает автозаполнение, а readLine(); обрабатывает автозаполнение, как если бы я его выбрал.
Ответ №1:
Я сузил проблему, заставляя TerminalConsoleAppender создавать немой терминал, поэтому я отключил это, а затем полностью затенял jline и jline-terminal-jansi и работал отлично.