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


当前回答

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

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

其他回答

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

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

我使用我写的fish函数

function javav
  set min_version 8
  set max_version 99
  set java_home_cmd '/usr/libexec/java_home 2>/dev/null --failfast --version'

  if ! test (eval $java_home_cmd $argv)
    echo "Version not found"
    return 1
  end

  for current_version in (seq $min_version $max_version)
    set path_to_remove (eval $java_home_cmd $current_version)
    if ! test -z $path_to_remove
      echo 'Removing' $path_to_remove 'from PATH'
      set PATH (string match --invert $path_to_remove/bin $PATH)
    end
  end

  echo 'Setting up env for Java' $argv
  set -x JAVA_HOME (eval $java_home_cmd $argv)
  set PATH $JAVA_HOME/bin $PATH
end

它基本上自动化了这个答案中的步骤,类似于这个,但也负责设置PATH。

只要把它放在.config/fish/functions/中,然后像这样使用它:

javav 11 # Sets to Java 11
javav 16 # Sets to Java 16

非常简单的答案:

运行并获取所有已安装的JDK路径

/usr/libexec/java_home -V

从jenv.be直接运行命令

git clone https://github.com/jenv/jenv.git ~/.jenv #Linux/macOS
OR
brew install jenv #macOS

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(jenv init -)"' >> ~/.zshrc

jenv add PATH_FROM_STEP_1

博士tl;

加一行:

出口JAVA_HOME = ' /图书馆/ Java / JavaVirtualMachines / jdk1.8.0_144.jdk /内容/家庭的

到文件

~ / . bash_profile

(取代jdk1.8.0_144。JDK的下载版本)

然后源~/.bash_profile

安装JDK,而不仅仅是JRE

/usr/libexec/java_home -v 1.8

给了

/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

next

touch .bash_profile

open -a TextEdit.app .bash_profile

TextEdit将显示您可以填写的空白页。

添加到文档: 出口JAVA_HOME = /图书馆/ Java / Home / JavaVirtualMachines / jdk1.8.0_111.jdk /内容

在终端:

export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"

试试下面的命令:

javac - version

应该输出:

javac 1.8.0_111