1

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

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

4

2 回答 2

1

要处理已安装的 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。

于 2021-07-01T13:28:15.577 回答
1

我想我也遇到过类似的问题。发生这种情况是因为您没有设置 Java_Home 部分。如果您使用的是 mac,则必须在您使用的 .bashrc 或 .zshrc 文件中设置 Java_Home 路径。我认为它应该工作。

在此处输入图像描述

于 2021-07-01T13:26:46.310 回答