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

安装sbt后运行报错SunCertPathBuilderException的解决求助

解决sbt首次运行SSL证书路径错误的方案

问题本质

这个错误是JVM无法验证sbt仓库的SSL证书导致的,和sbt的安装方式无关(所以重装sbt无法解决),通常是系统缺少对应根证书,或是JVM的证书库未包含仓库所需证书。

解决步骤

1. 定位当前使用的JDK证书库

先确认你正在使用的JDK版本:
java -version

找到JDK安装目录下的lib/security/cacerts文件(比如OpenJDK的典型路径是/Library/Java/JavaVirtualMachines/openjdk-xx.jdk/Contents/Home/lib/security/cacerts)。

2. 手动导入仓库根证书

  • 获取证书:打开浏览器访问sbt的maven仓库地址(比如https://repo1.maven.org/maven2/org/scala-sbt/sbt/1.9.7/),点击地址栏的锁图标,导出根证书(格式选PEM或DER)。
  • 导入证书到JVM证书库:执行以下命令,替换路径为你的实际文件路径:
    sudo keytool -importcert -file /path/to/your/certificate.crt -alias sbt-repo-cert -keystore /path/to/jdk/lib/security/cacerts
    
    默认cacerts密码是changeit,输入密码后确认导入即可。

3. 临时绕过证书验证(仅用于测试,不推荐生产环境)

如果只是临时调试,可以在运行sbt时添加JVM参数跳过SSL验证:
SBT_OPTS="-Djavax.net.ssl.trustStore=/path/to/jdk/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit -Dssl.allowuntrusted=true" sbt

也可以修改sbt全局配置文件~/.sbt/repositories,将仓库地址替换为HTTP协议(比如http://repo1.maven.org/maven2/),但这会降低传输安全性。

4. 检查代理环境

如果你在代理网络下,可能是代理拦截了SSL证书。尝试临时关闭代理,或确认代理的证书配置已正确添加到系统/ JVM证书库中。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:25:55