【问题标题】:How to set Java version for SBT如何为 SBT 设置 Java 版本
【发布时间】:2021-09-13 12:04:49
【问题描述】:

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

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

【问题讨论】:

  • sbt 应该只使用 JAVA_HOME 上的内容如果你确定你没有安装 Java 16 那么它不应该使用也就是说,sbt 不会下载 JDKs
  • 如果它使用的是 Java 16,那么它肯定安装在某个地方。检查您的 java 安装文件夹,该文件夹可以通过以下which java 找到。你可以设置JAVA_HOME或者使用sbt -java-home <path/to/jdk>来使用特定的jdk。

标签: java scala sbt java-15


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我不知道这个东西,它的好工具
    • 我想使用jabba。我认为这与 jenv 在这一点上非常相似..
    猜你喜欢
    • 1970-01-01
    • 2013-11-08
    • 2016-04-26
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2015-07-27
    • 2016-03-01
    相关资源
    最近更新 更多