如何在Mac OS中更改Java版本

3
我的Java版本是15.0.1(默认),我想将其更改为java 8(1.8.0_281)。
我下载了java8,尝试了几次,但版本没有更改。
1. 将`/Library/Java/JavaVirtualMachines/jdk-15.0.1.jdk/Contents/Info.plist`的名称更改为`Info.plist.disabled` 2. 更改`~/.bash_profile`中的版本并运行`source ~/.bash_profile` 3. 在终端中写入`export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)`
我重新启动了终端并运行了`java -version`,但仍然显示`openjdk version "15.0.1"`。
当我像这样写入`/usr/libexec/java_home -V`时,没有15.0.1。它返回`1.8.0_281 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home`。
在~/.zshrc中没有版本信息,只有以下内容:export PATH="/usr/local/opt/openjdk/bin:$PATH" export PATH="/usr/local/opt/openjdk/bin:$PATH" 执行echo $JAVA_HOME会显示/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 如何更改Java版本?请帮帮我 (macOS是big sur 11.2)

echo $PATH 是什么意思? - khelwood
@khelwood 这是路径:/usr/local/opt/openjdk/bin:/usr/local/opt/openjdk/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin - jack0
大概在这些目录中有 java 1.8 版本。 - khelwood
在您的.bash_profile中,您所说的JAVA_HOME环境变量(指向版本8)是否被附加到PATH中(例如,export PATH=$PATH:$JAVA_HOME/bin)?同时,请确保版本15的bin未仍在PATH上。 - bliss
不要手动下载JDK。使用像brew这样的软件包管理器。 - GhostCat
1个回答

17

在 Mac 上,这很简单,你可以安装两个或多个 Java 版本,并根据你的需求进行切换。

我发现一个非常有用的工具叫做 jenv。

如果你已经安装了 Homebrew(Mac 上的软件包管理器),你可以跳过这一步。

  1. 安装或更新 Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  • 安装 JEnv - Java 版本管理工具,一个很酷的工具,可以帮助您在 Mac 上切换多个 Java 环境

  • brew install jenv
    
  • 将 jEnv 添加到您的路径取决于您使用的shell,如果使用的是bash,则添加到 ~/.bash_profile 或 ~/.bashrc ,如果使用的是zsh,则添加到 ~/.zshrc 。在您的bash配置文件中添加以下两行

  • export PATH="$HOME/.jenv/bin:$PATH"
    eval "$(jenv init -)"
    
  • 重新启动终端或使用source ~/.zshrc

  • 检查您的JEnv是否正确安装

  • jenv doctor
    

    您将获得类似于[OK] Jenv已正确加载的输出结果

  • 安装Java 8

  •   brew cask install AdoptOpenJDK/openjdk/adoptopenjdk8
    
  • 安装Java 11版本

  • brew cask install AdoptOpenJDK/openjdk/adoptopenjdk11
    
  • 列出您机器上所有的Java

    /usr/libexec/java_home -V
    
  • 现在将这些路径添加到jENV中

  • Syntax: 
    jenv add <your_jdk_path>
    
    Example:
    jenv add /Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home
    
  • 完成了。请检查您的版本

  • jenv versions
    
  • 用于设置系统范围内的Java版本

  •  jenv global 14.0
    
  • 用于在终端本地设置

     jenv local 11
    
  • 如果您正在使用Maven或Gradle管理您的项目

  •   # ensure that JAVA_HOME is correct
      jenv enable-plugin 
    
      export# make Maven aware of the Java version in use 
      (and switch when your project does)
      jenv enable-plugin maven
    

    一个参考指南 https://www.jenv.be/


    3
    提醒一下,如果brew cask install AdoptOpenJDK/openjdk/adoptopenjdk11安装失败, 请使用以下命令替换: brew install --cask AdoptOpenJDK/openjdk/adoptopenjdk11 - Akhil Ghatiki

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接