Scala SBT因'String.class已断开而失败`

Scala SBT因'String.class已断开而失败`,scala,sbt,Scala,Sbt,sbt在发出任何命令(compile、assembly、clean或任何其他命令)时失败,并出现一个隐藏错误 我在一台运行macOS的机器上,sbt是通过自制软件安装的。我已尝试升级到最新版本的sbt(1.3.10),但错误仍然存在。页面上记录了该问题 由于希望使用更多的brew依赖项(),自制软件维护人员已向JDK 13添加了依赖项。这导致sbt使用JDK 13,即使路径上可用的java是JDK 8或11。要防止sbt在JDK 13上运行,请安装或切换到使用 自从sbt JDK 8和11作为兼

sbt
在发出任何命令(
compile
assembly
clean
或任何其他命令)时失败,并出现一个隐藏错误


我在一台运行macOS的机器上,
sbt
是通过自制软件安装的。我已尝试升级到最新版本的
sbt
(1.3.10),但错误仍然存在。

页面上记录了该问题

由于希望使用更多的brew依赖项(),自制软件维护人员已向JDK 13添加了依赖项。这导致sbt使用JDK 13,即使路径上可用的java是JDK 8或11。要防止sbt在JDK 13上运行,请安装或切换到使用

自从sbt JDK 8和11作为兼容版本以来,我通过
jEnv
使用JDK 8解决了这个问题

我们建议采用OpenJDK JDK 8或采用OpenJDK JDK 11

尝试通过
-java home
设置控制sbt使用哪个JDK,该设置可以通过
sbtopts
运行配置在系统范围内进行配置

/usr/local/etc/sbtopts
或每个项目通过


<project-root>/.sbtopts

我最近也有同样的问题。对我来说,成功的方法是安装
SDKMAN
()

$curl-s”https://get.sdkman.io“|猛击
...
$source“$HOME/.sdkman/bin/sdkman init.sh”
...
安装之后,我想看看我可以安装哪些版本的Java。因此,我只需运行这个命令来列出所有可用的Java版本

sdk列表java
选择要安装的版本(建议如上所述安装8或11),只需使用从列表中指定版本的标识符运行命令

sdk安装java 11.0.3.hs-adpt

安装后,它将Java 11设置为我的系统上的默认值。然后我再次运行了
sbt
命令,它成功了。

这就是我在Mac上解决问题的方法

brew uninstall sbt
安装sdkman

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
通过sdk安装sbt

sdk install sbt

您在哪里(在哪个目录中)运行了sbt命令?如果您在sbt项目中运行,请在
project/build.properties
中检查sbt版本,您安装了哪个JDK?您好,问题似乎是因为JDK 13成为
自制
中的默认JDK版本。我在下面发布了一个解决方案。对我来说不起作用,但另一个关于在sbt配置中更改JDK的响应解决了我的问题。非常感谢,这是最好的方法
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install sbt