我正在尝试运行一个 scala 程序,其中 Java 16 存在错误。我的同事正在使用 Java 15,一切都很好。当我java -version
在终端中输入时,它说我正在使用 Java 15。但是,当我运行时sbt run -v
,它说它正在使用 Java 16,因此程序会抛出错误。
我看到人们谈论这个sbt-extra
东西,但没有太多关于如何使用它的解释。我什至没有在我的 Mac 上安装 Java 16,所以我真的很困惑为什么 SBT 会这么说。
要处理已安装的 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:
您可以使用以下命令设置默认 jvm:
jenv global 1.8.0.121
然后,在您的一些项目中执行 sbt,您应该会看到 jvm 是 sbt 正在使用的 jvm。