【发布时间】:2018-09-27 22:33:03
【问题描述】:
试图在我的家用电脑 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 位服务器 VM(内部版本 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 或更高版本。
【问题讨论】:
-
This page here 说:“首先,确保您安装了 Java 8 JDK。”,这可能是问题之一,但它不能解释 bash 的错误消息。您使用什么 bash 版本,以及如何使用(如果您在 Windows 上)?
-
@AndreyTyukin 好的,我会试试的。我将它与内置 bash 的 Windows 的 git 客户端一起使用:gitforwindows.org。 Bash 3.1 版。
标签: windows bash scala sbt git-bash