我希望我错过了一些东西,因为当程序在sbt中运行时,击键似乎不会回显到屏幕.这是一个例子:
object ConsoleTest extends App {
println("Enter a line:")
val input = Console.readLine()
println("You entered: " + input)
}
Run Code Online (Sandbox Code Playgroud)
当我编译这个简单的代码并从命令行(在sbt之外)运行它时,我看到按键,因为我输入它们进行输入,一切正常.
不幸的是,当我使用sbt编译和运行相同的代码时,它根本不会回显屏幕上的按键.这是令人不安的经历.
还有其他人经历过这种差异吗?
我做了一些搜索,看看是否有其他人遇到这个,以及是否有一个sbt运行时参数允许按键回显.到目前为止没有运气.
我使用的是sbt-0.13.2,上面代码的Java版本也遇到了同样的区别,因此它似乎已经局限于在sbt环境中运行.
任何见解都表示赞赏.
这个问题已经有 2.5 年了,仍然没有答案,所以这里:)
我在 Windows 10 上进行了测试,使用 Scala 2.12.1、SBT 0.13.13.1。测试程序在Cmd和WSL的bash下运行良好。
从历史上看,此问题一直是 JLine 问题的症状。您可以使用 Java 系统变量将 JLine 设置覆盖jline.terminal为auto、none和等值windows。这是完整的文档。
以下是如何指定各种设置的一些示例:
C:\work\experiments\sbt\optionTest>sbt run
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[info] Loading project definition from C:\work\experiments\sbt\optionTest\project
[info] Updating {file:/C:/work/experiments/sbt/optionTest/project/}optiontest-build...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to change-me (in build file:/C:/work/experiments/sbt/optionTest/)
[warn] there was one deprecation warning (since 2.11.0); re-run with -deprecation for details
[warn] one warning found
Enter a line:
asdf
You entered: asdf
[success] Total time: 46 s, completed Jan 7, 2017 1:27:27 PM
C:\work\experiments\sbt\optionTest> sbt "-Djline.terminal=none" run
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[info] Loading project definition from C:\work\experiments\sbt\optionTest\project
[info] Set current project to change-me (in build file:/C:/work/experiments/sbt/optionTest/)
Enter a line:
asdf
You entered: asdf
[success] Total time: 3 s, completed Jan 7, 2017 1:28:12 PM
C:\work\experiments\sbt\optionTest> sbt "-Djline.terminal=windows" run
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[info] Loading project definition from C:\work\experiments\sbt\optionTest\project
[info] Set current project to change-me (in build file:/C:/work/experiments/sbt/optionTest/)
Enter a line:
asdf
You entered: asdf
[success] Total time: 3 s, completed Jan 7, 2017 1:28:26 PM
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1134 次 |
| 最近记录: |