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


当前回答

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)

其他回答

以前我在.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

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

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

一个基于/usr/libexec/java_home的小鱼函数

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

如果你不使用fish,你可以在bash中做类似的事情:

#!/bin/bash

jhome () {
  export JAVA_HOME=`/usr/libexec/java_home $@`
  echo "JAVA_HOME:" $JAVA_HOME
  echo "java -version:"
  java -version
}

然后在java do之间切换:

$> jhome           #switches to latest java
$> jhome -v 1.7    #switches to java 1.7
$> jhome -v 1.6    #switches to java 1.6

裁判:https://gist.github.com/kenglxn/1843d552dff4d4233271

使用jenv,它就像一个Java环境管理器。它非常容易使用和清洁

对于Mac,请按照以下步骤操作:

brew install jenv

git clone https://github.com/gcuisinier/jenv.git ~/.jenv

安装:如果您正在使用bash,请遵循以下步骤:

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(jenv init -)"' >> ~/.bash_profile

$ exec $SHELL -l

向jenv添加所需的JVM版本:

jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

jenv add /System/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home

检查已安装版本:

jenv versions

设置您想要使用的Java版本:

jenv global oracle64-1.6.0

太简单的解决方法:真让人头疼——这是一个快速简单的解决方法,对我来说很有效。

Mac OS Sierra版本10.12.13

使用快捷键:CMD+SHIFT+G -输入"/Library/" 找到JAVA文件夹 右键单击Java文件夹=移动到废纸篓(需要密码) 安装: Java SE开发工具包8 jdk-8u131-macosx-x64。下载Javascript SDK 确保新的JAVA文件夹出现在/LIBRARY/中 安装Eclipse |为Java开发人员安装Eclipse IDE 繁荣做