更改 macOS BigSur 中的 java 版本

2022-09-04 07:44:47

我无法在macOS BigSur中更改Java版本。我有以下版本:

当我执行此命令时

/usr/libexec/java_home -V

我有以下版本:

Matching Java Virtual Machines (3):
    11.0.8 (x86_64) "Oracle Corporation" - "Java SE 11.0.8" /Library/Java/JavaVirtualMachines/jdk-11.0.8.jdk/Contents/Home
    1.8.261.12 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_261 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-11.0.8.jdk/Contents/Home

我想切换到java 1.8作为默认的,所以我执行这个命令:

export JAVA_HOME=/usr/libexec/java_home -v 1.8.0_261

然后当我检查Java版本时:

java -version

我仍然得到旧的(更高的一个)

java version "11.0.8" 2020-07-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.8+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode)

为什么它不起作用?


答案 1

请使用以下命令:-

export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_261`

答案 2

你必须取消设置JAVA_HOME并设置JAVA_VERSION然后它才能工作。

~% JAVA_VERSION=12 java -version
openjdk version "14.0.2" 2020-07-14
~% export JAVA_VERSION=12
~% java -version
openjdk version "14.0.2" 2020-07-14
~% unset JAVA_HOME
~% java -version
java version "12.0.1" 2019-04-16
~% JAVA_VERSION=13 java -version
java version "13-ea" 2019-09-17

或者,如果您需要设置JAVA_HOME则需要在呼叫之前取消设置/usr/libexec/java_home

function jav {
unset JAVA_HOME
export JAVA_HOME=`/usr/libexec/java_home -v $@`
}
~% jav 12
~% java -version
java version "12.0.1" 2019-04-16
~% jav 13
~% java -version
java version "13-ea" 2019-09-17