出于某种原因,我的多线程网络服务器将无法在Windows上使用自动完成功能(在我原来的测试linux工作正常)我发现终端控制台appender和jansi是“解决方案”,他们遇到了很多问题,除了这个。关于这个的奇怪部分是我的客户端运行相同的代码函数来调用lineReader.readLine(“>”);完全正常,自动完成几乎完全相同的代码。我不知道是什么问题,因为他们都以相同的顺序调用相同的代码,具有相同的依赖关系(除了一些服务器端依赖项)
来源:https://github.com/Fernthedev/light-chat
StaticHandler(用于读取和设置终端和阅读器):https://github.com/Fernthedev/light-chat/blob/master/java/universalChat/src/main/java/com/github/fernthedev/universal/StaticHandler.java
服务器和客户端都有一个带有main(String [] args)方法的主类
我缩小了迫使TerminalConsoleAppender制作一个哑终端的问题,所以我禁用了它,然后完全着色jline和jline-terminal-jansi并且工作得很好。