gpt4 book ai didi

scala - cygwin/vista 中 sbt 的两个问题

转载 作者:行者123 更新时间:2023-12-04 15:04:15 25 4
gpt4 key购买 nike

我在 windows vista 上使用 cygwin 1.77。
我正面临来自 sbt 的输出问题在 shell 中。
一些相关的环境变量:

TERM=cygwin
CYGWIN=server
LANG=C.UTF-8

(1) 当我输入 sbt test 时 shell 包含许多不可打印的字符:

alt text

我怎样才能解决这个问题 ?

我的 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 & 我不知道如何配置它以通过 ivy 下载它。如果我将 jar 放入 lib 中,它会起作用文件夹。

最佳答案

关于 1):

Cygwin 控制台的工作方式是 Cygwin DLL 的一部分将 Unix 终端控制序列映射到 Windows 控制台 API 调用。由于该终端仿真是 Cygwin DLL 的一部分,因此它不可用于非 Cygwin 程序,例如 Java 运行时。相反,java将直接与不理解转义序列的 Windows 控制台对话。因此它们直接出现在屏幕上。

有几种方法可以解决这个问题:

  • 告诉 Java/Scala 使用 Windows 控制台 API 而不是 Unix 控制序列。我想删除 -Djline.terminal=jline.UnixTerminal选项会这样做。
  • 设置 CYGWIN=tty选项。这样,在 Cygwin 控制台中调用的程序将它们的 I/O 连接到“伪终端”(pty)设备,而不是直接连接到控制台窗口。这使得非 Cygwin 程序可以使用终端仿真功能,但这意味着使用 Windows 控制台 API 的程序将不再正常工作。
  • 使用 Cygwin 的其他终端模拟器之一:mintty、xterm、rxvt(-unicode)。这些提供了比默认控制台更好的终端仿真和更合理的用户界面,但同样以不支持使用 Windows 控制台 API 的程序为代价。

  • (顺便说一句, CYGWIN=server 选项已过时;它启用的功能始终处于启用状态。)

    关于scala - cygwin/vista 中 sbt 的两个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4468967/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com