光标键箭头在SBT 0.13中不起作用*。 疑似Jline。 如何启用它们?

SBT-0.7.7将JLine捆绑在发射器中,并且工作正常。 例如:

"C:\Program Files (x86)\Java\jre7\bin\java.exe" -jar C:\scala\sbt-launch-0.7.7.jar 

我可以使用光标键浏览命令历史logging。 它在SBT-0.13.5中不起作用:

 "C:\Program Files (x86)\Java\jre7\bin\java.exe" -jar C:\scala\sbt_launch_135.jar 

当我按下光标键时,会出现可打印字符,如“pHpP”。 在目标/ .history文件中,我们看到字符代码是“0xE0 0x48 0xE0 0x50”。 在Java8和64位Java中是一样的。 我也尝试了各种版本的SBT启动器和jline.terminal的各种值,如-Djline.terminal = jline.AnsiWindowsTerminal无济于事。 我也试过了-Djline.WindowsTerminal.directConsole = false – 那么光标键根本没有任何function。 在所有情况下,我都可以使用CTRL + PCTRL + N来浏览历史logging。

SBT-0.13。*加载常春藤库中的JLine%HOMEPATH%.sbt \ boot \ scala-2.10.3 \ org.scala-sbt \ sbt \ 0.13.1 \ jline-2.11.jar我检查了JLine的源代码。 版本2.10.3有一个原始configuration文件keybindings.propertiesWindowsTerminal.java中的函数readVirtualKey()来处理光标键。 所有版本的JLine都会在临时目录(如%HOMEPATH%\ AppData \ Local \ Temp \ jline_.dll)中安装一个助手DLL,

为什么它不能正常工作? 如何使光标键工作?

尝试将以下属性传递给进程,即:

 sbt -Dinput.encoding=Cp1252 

如这里所述