我在windows vista上使用cygwin 1.77。
我在shell中遇到sbt
的输出问题。
一些相关的环境变量:
TERM=cygwin
CYGWIN=server
LANG=C.UTF-8
(1)当我输入sbt test
时,shell包含许多不可打印的字符:
我该如何解决这个问题?
我的sbt shell脚本如下所示:
dir=`dirname $0`
stty -icanon min 1 -echo > /dev/null 2>&1
java -Djline.terminal=jline.UnixTerminal -Xmx512M -jar
`cygpath -w $dir`/sbt-launch-0.7.4.jar "$@"
stty icanon echo > /dev/null 2>&1
(2)sbt
命令找不到scalatest
jar&我不知道如何配置它通过常春藤下载它。如果我将jar放入lib
文件夹,它就可以工作。
答案 0 :(得分:6)
关于1):
Cygwin控制台的工作方式是Cygwin DLL的一部分将Unix终端控制序列映射到Windows控制台API调用。由于该终端仿真是Cygwin DLL的一部分,因此它不适用于非Cygwin程序,例如Java运行时。相反,java
将直接与Windows控制台对话,后者无法理解转义序列。因此,它们直接出现在屏幕上。
有几种方法可以解决这个问题:
-Djline.terminal=jline.UnixTerminal
选项就可以了。CYGWIN=tty
选项。这样,在Cygwin控制台中调用的程序将其I / O连接到“伪终端”(pty)设备,而不是直接连接到控制台窗口。这使得终端仿真功能可用于非Cygwin程序,但这意味着使用Windows控制台API的程序将无法正常工作。(顺便说一下,CYGWIN=server
选项已过时;无论如何,它启用的功能始终处于开启状态。)