windows - Scala - SBT 设置,bash : syntax error near `=~'

标签 windows bash scala sbt git-bash

尝试在我的家用电脑 Windows 10 上安装 scala 和 sbt 进行练习。

已安装:

  • Scala 版本 2.12.4
  • Sbt 1.1.4
  • java 版本“9.0.4”
  • Java(TM) SE 运行时环境(版本 9.0.4+11)
  • Java HotSpot(TM) 64 位服务器虚拟机(版本 9.0.4+11,混合模式)

在 git bash 中运行以下命令(在管理员中)

sbt new scala/projectname.g8

收到此错误

/c/Program Files (x86)/sbt/bin/sbt-launch-lib.bash: line 126: conditional binary operator expected
/c/Program Files (x86)/sbt/bin/sbt-launch-lib.bash: line 126: syntax error near `=~'
/c/Program Files (x86)/sbt/bin/sbt-launch-lib.bash: line 126: `  elif [[ "${JAVA_OPTS}" =~ Use.*GC ]] || [[ "${JAVA_TOOL_OPTIONS}" =~ Use.*GC ]] || [[ "${SBT_OPTS}" =~ Use.*GC ]] ; then'
/c/Program Files (x86)/sbt/bin/sbt: line 157: run: command not found

我尝试重新安装所有依赖项,修复 sbt 安装。
当我进入该目录时,文件被隐藏。

来自 c/Program Files (x86)/sbt/bin/sbt-launch-lib.bash 第 120 - 133 行的代码:

get_gc_opts () {
  local older_than_9=$(( $java_version < 9 ))

  if [[ "$older_than_9" == "1" ]]; then
    # don't need to worry about gc
    echo ""
  elif [[ "${JAVA_OPTS}" =~ Use.*GC ]] || [[ "${JAVA_TOOL_OPTIONS}" =~ Use.*GC ]] || [[ "${SBT_OPTS}" =~ Use.*GC ]] ; then
    # GC arg has been passed in - don't change
    echo ""
  else
    # Java 9+ so revert to old
    echo "-XX:+UseParallelGC"
  fi
}

非常感谢对此的任何帮助!

已解决:bash 版本 >3.0 不支持 =~ 运算符。重新安装git bash for windows解决了这个问题。

这些命令也适用于 jdk 1.8 或更高版本。

最佳答案

您可以尝试此操作(以任何顺序):

关于windows - Scala - SBT 设置,bash : syntax error near `=~' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49886897/

相关文章:

bash - 使用 bash 将单行输入传递给命令的标准输入的最佳实践

bash - 在 bash 中计算一行中的逗号

linux - tail 如何跳过最后一行

performance - 使用加特林将条件放入 HTTP 请求中

scala - 如何在 sbt 0.13 中使用 sbt-scalabuff 插件?

c++ - 未创建 NT 内核记录器 session 日志

windows - 从一个巨大的文本文件中读取最后 n 行

windows - 如何检查哪个程序正在读取/写入磁盘和注册表

linux - 使用命令显示文件名的一部分

mysql - HSQL 中的大写