首页 > 解决方案 > 如何为 SBT 设置 Java 版本

问题描述

我正在尝试运行一个 scala 程序,其中 Java 16 存在错误。我的同事正在使用 Java 15,一切都很好。当我java -version在终端中输入时,它说我正在使用 Java 15。但是,当我运行时sbt run -v,它说它正在使用 Java 16,因此程序会抛出错误。

我看到人们谈论这个sbt-extra东西,但没有太多关于如何使用它的解释。我什至没有在我的 Mac 上安装 Java 16,所以我真的很困惑为什么 SBT 会这么说。

标签: javascalasbtjava-15

解决方案


要处理已安装的 jvm,您可以使用Jenv

要安装 jenv:

git clone https://github.com/jenv/jenv.git ~/.jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(jenv init -)"' >> ~/.bash_profile

然后,您可以添加安装的 jvm。在 Mac 中,如果您通过brew安装了它们,您可以在以下位置找到它们:/Library/Java/JavaVirtualMachines

然后将它们添加到 jenv:

jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home 
jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home 

您可以在 jenv 中看到可用的 jvm:

jenv_versions

您可以使用以下命令设置默认 jvm:

jenv global 1.8.0.121

然后,在您的一些项目中执行 sbt,您应该会看到 jvm 是 sbt 正在使用的 jvm。


推荐阅读