Ubuntu18.04中SBT启动失败:org.scala-sbt#sbt;1.1.6依赖未找到
问题分析与解决方案
看起来你遇到的核心问题是Java证书信任库异常,导致SBT无法验证Maven仓库的SSL证书,进而出现依赖解析失败的错误。结合你提供的所有信息,我整理了分步解决方法:
1. 修复Java信任库(trustAnchors)问题
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty这个错误,本质是Java的cacerts证书文件损坏或无法读取。直接重新生成证书链即可解决:
sudo update-ca-certificates -f sudo dpkg-reconfigure ca-certificates-java
这两条命令会强制更新系统证书,并重新构建Java的信任库文件,修复缺失或损坏的证书条目。
2. 处理Java版本依赖冲突
从你后续的更新来看,卸载OpenJDK8时遇到了依赖冲突问题,这是因为系统中同时存在OpenJDK8和11,导致依赖链出现矛盾。可以按以下步骤处理:
- 如果你打算保留OpenJDK11作为默认版本,先切换默认Java环境:
sudo update-alternatives --config java
在弹出的选项中选择java-1.11.0-openjdk-amd64对应的编号,按回车确认。
- 若确实需要卸载OpenJDK8,先修复系统依赖状态:
sudo apt-get install -f sudo apt-get autoremove
之后再尝试卸载:
sudo apt-get purge openjdk-8-jdk
3. 验证SBT运行状态
完成上述步骤后,重新启动SBT:
sbt
如果仍然存在依赖解析问题,可以尝试清除SBT的本地缓存,强制重新拉取所有依赖:
rm -rf ~/.sbt ~/.ivy2
之后再次运行sbt即可。
额外说明
你的SBT安装流程是完全正确的,问题根源不在SBT本身,而是Java的证书配置异常。这类trustAnchors错误几乎都和Java信任库的完整性有关,重新生成证书链是最直接有效的解决方式。
内容的提问来源于stack exchange,提问作者softshipper
相关产品推荐
相关产品推荐

