java - 如何为 SBT 设置 Java 版本
问题描述
我正在尝试运行一个 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。
推荐阅读
- python - Django 的 csrf_exempt 装饰器会删除所有 POST 数据吗?
- python - 从 cookie 中提取值
- angular - 如何将 *ngFor 与 mat-menu 和 mat-menu-item 一起使用?
- python - Python help():用 `*` 跨越参数是什么意思?
- dart - 如何设置 CupertinoSegmentedControl 高度?
- php - .htaccess 重写 url,不适用于表单提交
- python-3.x - 如何在python中找到两个向量之间的顺时针角度?
- c - 灵活数组成员的非静态初始化?
- junit5 - Junit 5:如何为参数化测试提供名称
- javascript - 生产模式下的 Nuxt.js 安全性