0

我无法以交互模式在 sbt 中运行任何命令,而在命令行上使用相同的命令。我在 Babun Cygwin 的 Windows 7 上使用 Java 1.8.0_102-b14 运行 sbt 0.13.13。为了解决其他 sbt 问题,我创建了一个最小的 Scala 项目。sbt 可以编译我的项目并可以进入交互模式,但是它会被任何命令卡住。为什么会这样/我该如何解决这个问题?

{ sbtXmpl }  > ./sbt projects
+ java -jar ./build/buildcommon/sbt-launch.jar projects
[info] Loading global plugins from C:\Users\MyName\.sbt\0.13\plugins
[info] Loading project definition from C:\dev\sbtXmpl\project
[info] Set current project to root (in build file:/C:/dev/sbtXmpl/)
[info] In file:/C:/dev/sbtXmpl/
[info]     core
[info]   * root
[info]     util
{ sbtXmpl }  > ./sbt
+ java -jar ./build/buildcommon/sbt-launch.jar
[info] Loading global plugins from C:\Users\MyName\.sbt\0.13\plugins
[info] Loading project definition from C:\dev\sbtXmpl\project
[info] Set current project to root (in build file:/C:/dev/sbtXmpl/)
> projects
// This never returns
^C
zsh: command not found: projects
4

1 回答 1

0

这可能与控制台 Java 应用程序 (sbt) 如何与 shell 交互有关。通过在我用来运行 sbt 的脚本中添加以下片段,我能够解决 sbt 的问题:

if [ "$(expr substr $(uname -s) 1 6)" == "CYGWIN" ];then
    #Ensure that sbt uses the correct terminal settings
    CYG_OPTS="-Djline.terminal=jline.UnixTerminal -Dsbt.cygwin=true"
    #Prevent erase, kill, werase, and rprnt special characters 
    stty -icanon min 1 -echo > /dev/null 2>&1
fi

#launch sbt
java $CYG_OPTS $JAVA_OPTS -jar $SBT_LAUNCHER "$@"

我还没有找到 Python 的解决方案。

REPL 程序(sbt、python)在 Babun 下无法完成

Babun 在带有控制台输入的 Windows 应用程序上中断

于 2016-12-14T18:28:22.480 回答