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


当前回答

如果你用的是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

其他回答

使用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

您可以将其添加到.bash_profile中,以设置默认版本。

//Open bash profile
open ~/.bash_profile

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

// run bash profile
source ~/.bash_profile

将以下命令添加到~/. .zshenv文件

export JAVA_HOME=`/usr/libexec/java_home -v 1.8` 

检查Java版本:Java -version

版本切换:https://devqa.io/brew-install-java/

开放的~ / . bash_profile

export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)

export JAVA_11_HOME=$(/usr/libexec/java_home -v11)

别名java8=“出口JAVA_HOME=$ java_8_homs” 别名java11=“出口JAVA_HOME=$ java_11_homs”

源~ / . bash_profile

当我们切换到java11或java8时,java -version命令没有显示正确的版本。

在这种情况下,使用mvn -version查看用于构建解决方案的正确java版本

将以下代码行添加到你的.zshrc(或bash_profile):

alias j='f(){export JAVA_HOME=/usr/libexec/ JAVA_HOME -v $1};f'

保存到会话:

$ source .zshrc

执行命令(例如j13, j14, j1.8…)

$ j 1.8

解释 这是参数化的,所以你不需要像其他解决方案一样更新脚本。如果您没有安装JVM,系统会告诉您。案例示例如下:

/Users/user/IDE/project $ j 1.8
/Users/user/IDE/project $ java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01, mixed mode)
/Users/user/IDE/project $ j 13
/Users/user/IDE/project $ java -version
openjdk version "13.0.2" 2020-01-14
OpenJDK Runtime Environment (build 13.0.2+8)
OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)
/Users/user/IDE/project $ j 1.7
Unable to find any JVMs matching version "1.7".