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


当前回答

以前我在.zshrc中使用别名,以便在版本之间轻松切换,但今天我使用SDKMAN。 SDKMAN还可以为系统设置默认java,以及下载和安装新的java版本。

一旦安装了sdkman,您就可以执行类似于nvm工具处理节点版本的命令。

Java将列出您的系统上可用的Java版本以及可在线安装的Java版本,包括您可以在SDK使用,SDK默认和SDK安装命令中使用的标识符。

例如,安装Amazon Corretto 11.0.8并询问它是否应该是新的默认值,这样做: SDK安装Java 11.0.8-amzn

我还经常使用的一个特性是.sdkmanrc文件。 如果你把它放在你机器上的一个目录中,并在该目录中运行sdk env命令,那么你可以配置只在该目录中使用的工具版本。也可以使用sdkman_auto_env=true配置使sdkman自动切换工具版本。

sdkman还支持为JVM处理其他工具,如gradle, kotlin, maven等等。

欲了解更多信息,请访问https://sdkman.io/usage#env

其他回答

检查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版本

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

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 ..

基于@markhellewell的答案,我创建了几个别名函数,将为您做这件事。只需将这些添加到您的shell启动文件

#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"; 
  export JAVA_HOME=`/usr/libexec/java_home -v 1.$1`; 
  java -version; 
}

https://gist.github.com/Noyabronok/0a90e1f3c52d1aaa941013d3caa8d0e4

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

如果你有多个版本,并且你想使用一个特定的版本来运行一些东西,请使用这个例子:

/usr/libexec/java_home -v 1.7.0_75 --exec java -jar you-file.jar