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


当前回答

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

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 繁荣做

其他回答

首先找出存储环境变量的位置

emacs bash_profile zshrc中

设置环境变量步骤:- .单击“确定”

从JAVA下载jdk 双击安装它 现在在文件中设置环境变量 a. emacs。你可以使用这个链接或看到下面的截图

b.对于ZSH配置文件设置-

1. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

2. source ~/.zshrc - Restart zshrc to reflect the changes.

3. echo $JAVA_HOME - make sure path is set up properly 
   ----> /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

4. java -version 

   -->  java version "1.8.0_112"  Java(TM) SE Runtime Environment (build 1.8.0_112-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

所有设置现在您可以轻松升级或降级JAVA版本..

在不需要安装额外工具的情况下,让/usr/ libeexec /java_home -V将单独安装的JDK识别为一级成员的简单方法是如下所示的符号链接:

sudo ln -s <path> /Library/Java/JavaVirtualMachines/jdk-[some-identifier].jdk

<path>是一个包含Contents/Home/bin等子目录的目录。


一个常见的用例是注册Android Studio中包含的JDK/JRE:

在macOS上最新版本的Android Studio中,Java工具的默认位置是/Applications/Android\ Studio.app/Contents/jre。我们将使用jdk-android-studio。JDK作为标识符:

sudo ln -s /Applications/Android\ Studio.app/Contents/jre /Library/Java/JavaVirtualMachines/jdk-android-studio.jdk

现在,/usr/libexec/java_home -V将在匹配Java虚拟机下列出它:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    11.0.13 (arm64) "JetBrains s.r.o." - "OpenJDK 11.0.13" /Applications/Android Studio.app/Contents/jre/Contents/Home
/Applications/Android Studio.app/Contents/jre/Contents/Home

安装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

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

macOS El Capitan或更新版本将选择/Library/Java/JavaVirtualMachines中可用的更高版本的JDK,因此为了降级,您可以将文件重命名为Info。plist改为Info.plist.disabled这样操作系统就会选择以前的版本。