尝试在我的家用电脑 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 或更高版本。
最佳答案
您可以尝试此操作(以任何顺序):
- 按照 the Scala "Download" page 上的建议安装 JDK 1.8(而不是 1.9)
- 确保您拥有
bash -version
> 3.0,因为 older bash versions do not support=~
operator - 此外,您是否尝试过使用
sbt.bat
?它似乎是为 Windows 量身定制的。
关于windows - Scala - SBT 设置,bash : syntax error near `=~' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49886897/