【问题标题】:switch java version on mac OS在 mac OS 上切换 java 版本
【发布时间】:2021-03-24 20:58:30
【问题描述】:

我正在尝试使用以下方式切换 java 版本

export JAVA_HOME='/usr/libexec/java_home -v 1.8.0_172'

但是当我运行java -version 时,我得到了以下信息

java version "10.0.1" 2018-04-17 Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10) Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

我想在MAC中切换到1.8.0_172版本怎么办?

【问题讨论】:

  • @lakshman 看起来 OP 已经在尝试应用该问题的解决方案了。
  • @MarkRotteveel:不,他没有。 OP 使用引号而不是反引号,还有其他答案。
  • @lakshman 我说尝试过,而大多数其他答案在该主题上都有变化。我认为最初指出这个错误会很有帮助(因为这对于不熟悉 bash 的人来说并不明显)。

标签: java macos


【解决方案1】:

假设您安装了 jdk1.8.0.172,一个选项是:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home

【讨论】:

  • 查看可用的 java 版本:ls /Library/Java/JavaVirtualMachines/
【解决方案2】:

我认为对我来说最简单的是使用jenv

类似于rvm或nvm,方便在java版本之间切换。

步骤:

brew install jenv

重击

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

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

Zsh

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc

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

在终端运行unset JAVA_TOOL_OPTIONS (这是一种预防措施,以防您的输出破坏了文本解析。在我的情况下,这确实有所作为)

jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home

jdk1.8.0_231.jdk -> 使用您机器上的任何版本。

然后使用javac -version验证它是否已更改。

【讨论】:

  • 谢谢。我发现这个解决方案对于未来的验证来说更加强大。
【解决方案3】:

上面的方法在 Mac OS Catalina 上对我有用(删除引号),但是我还必须像下面这样设置路径变量:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/{java version.jdk}/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

其中 {java_version.jdk} 是运行后列出的任何 Java 版本

/usr/libexec/java_home -V 

【讨论】:

    【解决方案4】:
    /usr/libexec/java_home -V
    

    上面的命令会给你系统中安装的所有java版本。

    export JAVA_HOME=`/usr/libexec/java_home -v <VERSION YOU WANT TO USE FROM ABOVE LIST`>
    

    【讨论】:

      猜你喜欢
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多