如何更改mac上的Java默认版本?


当前回答

使用jenv是一种简单的方法。(2022年更新)

安装jenv:参见入门 使用brew安装java Brew install openjdk@11 Ln -s /usr/local/opt/openjdk@11/libexec/openjdk。jdk /图书馆/ Java / JavaVirtualMachines / openjdk - 11. jdk #其他java Brew install openjdk@8 Brew install openjdk@17 添加java到jenv jenv add /Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home 用法:参考jenv

其他回答

JDK Switch脚本

我改编了上面@Alex的答案,并编写了以下代码来修复Java 9的代码。

$ cat ~/.jdk
#!/bin/bash

#list available jdks
alias jdks="/usr/libexec/java_home -V"
# jdk version switching - e.g. `jdk 6` will switch to version 1.6
function jdk() {
  echo "Switching java version $1";

  requestedVersion=$1
  oldStyleVersion=8
  # Set the version
  if [ $requestedVersion -gt $oldStyleVersion ]; then
    export JAVA_HOME=$(/usr/libexec/java_home -v $1);
  else
    export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`;
  fi

  echo "Setting JAVA_HOME=$JAVA_HOME"

  which java
  java -version;
}

切换到Java 8

$ jdk 8
Switching java version 8
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
/usr/bin/java
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

切换到Java 9

$ jdk 9
Switching java version 9
Setting JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
/usr/bin/java
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

如果你用的是fish,而你用的是mac,你希望能够在JDK之间切换,那么下面对我来说适用于mac。

@kenglxn的答案对我不起作用,我发现它没有设置-g,这是全局的!

放在~/.config/fish/config.fish下面

alias j8="jhome  -v 1.8.0_162"
alias j9="jhome  -v 9.0.1"

function jhome
    set -g -x JAVA_HOME (/usr/libexec/java_home $argv)
    echo "JAVA_HOME:" $JAVA_HOME
    echo "java -version:"
    java -version
end

funcsave jhome

要了解您已安装的版本/次要版本,您可以执行以下操作:

/usr/libexec/java_home -V                                                                              579ms  Wed 14 Feb 11:44:01 2018
Matching Java Virtual Machines (3):
    9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
    1.8.0_162, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
    1.8.0_121, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

四个简单的步骤使用终端的人谁使用默认进程..:)

echo $JAVA_HOME给出当前的java home。例如:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/ cd /Library/Java/JavaVirtualMachines/将带你到你通常安装jdk的文件夹(这可能与你的机器不同) Ls显示可用的文件夹(通常它会有版本号,例如:jdk1.8.0_191。jdk openjdk-11.0.2.jdk) 出口JAVA_HOME = ' /图书馆/ Java / JavaVirtualMachines / openjdk-11.0.2。jdk/Contents/Home'将更改java Home ..

更新……

在macOS Monterey中,v12.0.1 Cask不再是一个Brew命令。只要按照步骤进行,但在步骤4中只需执行$ brew install…或者$ brew install——桶…而不是$ brew桶安装…感谢@Shivam Sahil的评论。

我将分享我使用macOS Big Sur v11.4的经验,处理这些问题的最好方法是使用Homebrew安装java:

1 -安装自制软件。

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2 -安装自制酒桶。

$ brew tap homebrew/cask-versions 
$ brew update 
$ brew tap homebrew/cask

3 -安装最新版本的Java

$ brew cask install java

4 -安装其他需要的Java版本(Java8, Java11, Java13)。

$ brew tap adoptopenjdk/openjdk

$ brew cask install adoptopenjdk8
$ brew cask install adoptopenjdk11
$ brew cask install adoptopenjdk13
$ brew cask install adoptopenjdk14

5 -在不同版本的Java之间切换

在不同版本的Java之间切换,只需要将以下内容添加到.bash_profile或.zshrc。

在这种情况下,我们希望能够在Java8、Java11、Java13和Java14之间切换:

export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_13_HOME=$(/usr/libexec/java_home -v13)
export JAVA_14_HOME=$(/usr/libexec/java_home -v14)

alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java13='export JAVA_HOME=$JAVA_13_HOME'
alias java14='export JAVA_HOME=$JAVA_14_HOME'

# default to Java 14
java14

6 -重新加载.bash_profile或.zshrc使别名生效:

$ source ~/.bash_profile

or

$ source ~/.zshrc

7 -最后,你可以使用别名在不同的Java版本之间切换。

$ java8
$ java -version
java version "1.8.0_261"

有关更多信息,您可以看到这篇文章:如何使用Brew在Mac上安装Java

首先找出存储环境变量的位置

emacs bash_profile zshrc中

设置环境变量步骤:- .单击“确定”

从JAVA下载jdk 双击安装它 现在在文件中设置环境变量 a. emacs。你可以使用这个链接或看到下面的截图

b.对于ZSH配置文件设置-

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

2. source ~/.zshrc - Restart zshrc to reflect the changes.

3. echo $JAVA_HOME - make sure path is set up properly 
   ----> /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

4. java -version 

   -->  java version "1.8.0_112"  Java(TM) SE Runtime Environment (build 1.8.0_112-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

所有设置现在您可以轻松升级或降级JAVA版本..