You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10下Scala与SBT环境搭建报错:bash语法错误

解决Windows10 Git Bash下SBT 1.1.4执行sbt new报错的方案

嘿,这个报错我之前帮人排查过,本质是旧版SBT(1.1.4)和Java 9的兼容性问题,再加上你的SBT装在带空格的Program Files (x86)路径里,直接触发了启动脚本的语法bug。下面给你几个实用的解决思路:

一、最稳妥的方案:升级SBT+换无空格路径

SBT 1.2.0及以后的版本已经修复了Java 9的适配问题,而且避开带空格的安装路径能彻底解决脚本解析的路径问题:

  • 先卸载你当前的SBT 1.1.4
  • 下载SBT 1.2.x或者更高的稳定版本(比如1.3.x系列,对Java 8/9都友好)
  • 安装的时候选个不带空格的路径,比如C:\sbt,别再用Program Files这类带空格的目录了

二、临时救急:修改SBT启动脚本(不推荐长期用)

如果暂时不想升级,你可以手动改一下报错的脚本文件:

  • 找到C:\Program Files (x86)\sbt\bin\sbt-launch-lib.bash
  • 打开后定位到第126行,原代码是用[[ ]]的写法,Git Bash的旧版bash不兼容这个语法,改成[ ]分开判断:
    # 原代码
    if [[ -n "$JAVA_HOME" && -x "$JAVA_HOME/bin/java" ]]
    # 修改后
    if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]
    
  • 保存后再试命令,但这个方法只是临时绕开,Java 9和SBT 1.1.4可能还有其他隐藏问题

三、更适合练习的环境:切回Java 8

其实Scala 2.12.4和Java 8的适配是最完善的,很多旧工具在Java 9下容易出幺蛾子:

  • 装个Java 8(比如AdoptOpenJDK 8,免费好用)
  • 把系统环境变量的JAVA_HOME改成Java 8的安装路径,PATH里把Java 8的bin目录放在Java 9前面
  • 重启Git Bash后,输java -version确认已经切换到Java 8,再跑sbt new应该就没问题了

验证一下

改完之后,先在Git Bash里输这两个命令确认版本:

sbt --version
java -version

确认版本符合要求后,再执行sbt new scala/projectname.g8,就能正常创建练习项目啦!

内容的提问来源于stack exchange,提问作者crowgers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:27:16