如何在OS X上设置或更改默认Java(JDK)版本?


775

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


2
执行/usr/libexec/java_home告诉你什么?
巴特2014年

2
/ usr / libexec / java_home返回/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Venkat

可能只是您需要重新启动。你有尝试过吗?
巴特2014年

是的,重新启动了计算机和终端。
Venkat 2014年

3
您能否接受下面@markhellewell给予的高度评价的答案?它将帮助我更快地找到它,而且很好。:)
Taytay

Answers:


1403

第一次运行/usr/libexec/java_home -V将输出类似以下内容:

Matching Java Virtual Machines (3):
1.8.0_05, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
1.6.0_65-b14-462, x86_64:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

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

选择您想要成为默认版本的版本(1.6.0_65-b14-462出于参数考虑),然后:

export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`

或者您可以仅指定主要版本,例如:

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

现在,当您运行时,java -version您将看到:

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

export JAVA_HOME…行添加到您的外壳的init文件中。

对于Bash(如antonyh所述):

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

对于鱼类(如ormurin所述)

set -x JAVA_HOME (/usr/libexec/java_home -d64 -v1.8)

2
@ MattO'Brien,这取决于您使用的外壳以及适当的配置,因此我无法为您提供完整的解决方案……
markhellewell 2014年

11
这些真的是反引号的export线
大卫-韦斯特

6
这对我没有用。抓住运行java_home -V的路径,并将其添加到导出命令中,例如export JAVA_HOME =“ / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Contents / Home”
奥登

68
这在Bash中有效-- export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)还请注意,java_home允许部分匹配,因此您不必包括完整版本,因为它将找到最新安装的版本。这使更新更加容易。
antonyh 2014年

14
确保使用``not''进行导出。
暴雪2015年

406

这个答案是试图解决的问题:在macOS El Capitan或更高版本(Sierra,High Sierra,Mojave)上安装了几个JDK版本以进行开发时,如何控制系统范围内的Java版本(不仅仅是在当前运行的Shell中。据我所知,目前的答案都没有(*)。

作为开发人员,我使用了多个JDK,并且希望轻松地从一个切换到另一个。通常,我有最新的稳定版供一般使用,其他则供测试使用。但是我不希望系统(例如,当我启动IDE时)使用目前拥有的最新“早期访问”版本。我想控制系统的默认值,并且应该保持最新状态。

以下方法至少适用于Java 7至12(在撰写本文时为早期访问),适用于Oracle JDKOpenJDK(包括2018年10月中以后生产的AdoptOpenJDK构建)。

没有第三方工具的解决方案:

  • 将所有JDK保留在其默认位置下/Library/Java/JavaVirtualMachines。系统默认会选择最高版本。
  • 要排除默认选择的JDK,请将其重命名Contents/Info.plistInfo.plist.disabled$JAVA_HOME指向该JDK 或在脚本或配置中显式引用它时,仍可以使用该JDK 。它只会被系统的java命令忽略。

系统启动器将使用具有Info.plist文件最高版本的JDK 。

在使用备用JDK的Shell中工作时,请在现有答案(jenv,或周围的自定义别名/脚本/usr/libexec/java_home等)中选择您的方法。


详细调查在此要点


(*)当前答案已经过时(对于macOS El Capitan或Sierra不再有效),或仅针对单个JDK,或者不针对系统范围。许多人解释了如何更改$JAVA_HOME,但这只会影响当前的shell以及从那里启动的内容。它不会影响从OS启动器启动的应用程序(除非您更改正确的文件并注销/登录,这很乏味)。对于jenv来说,它也很酷,但是据我所知,它仅更改环境变量,因此它具有相同的局限性。


16
这是我一直在寻找的答案,因为它jenvJAVA_HOME无法设置系统范围的Java版本,即Eclipse将使用的版本。
Giovanni Lovato

3
@Rodrigo是的,如“调查的详细信息”(上文链接)所述:“安装JDK也会覆盖/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/。显然,这是新的“首选项”窗格将启动的那个-这是我在解决方案中发现的唯一例外: “ thingy仍将使用JDK9(我安装的最新版本),但其他Java应用程序则不会。”
Hugues M.

2
值得一提的是,可以在/ Library / Java / JavaVirtualMachines中找到Java版本,并且上述出色的工作解决方案就在该上下文中。
安德鲁·科斯特卡

3
确实,这是解决此问题的最佳方法,也是最实用的解决方案。不幸的是。
Aerodynamika

3
对于这个答案,我感激不尽。此修复了从OS启动器启动的应用程序。
卡尔思(Karthic Raghupathi)

246

除上述答案外,我在我的代码行中.bash_profile(或.zshrc对于MacOS 10.15+)添加了以下几行,这使得切换(包括@elektromin对Java 9的注释)非常方便:

alias j12="export JAVA_HOME=`/usr/libexec/java_home -v 12`; java -version"
alias j11="export JAVA_HOME=`/usr/libexec/java_home -v 11`; java -version"
alias j10="export JAVA_HOME=`/usr/libexec/java_home -v 10`; java -version"
alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version"
alias j7="export JAVA_HOME=`/usr/libexec/java_home -v 1.7`; java -version"

插入后执行 $ source .bash_profile

我可以通过键入以下命令切换到Java 8:

$ j8
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

5
这是Java 9的语法: alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
elektromin

3
很棒的简单别名,可快速切换。
gbonetti's

使用alias j10="export JAVA_HOME=`/usr/libexec/java_home`; java -version"然后键入j10可以使您切换回当前版本的Java(在我的情况下为Java 10)
intagli

我会制作一个与nvm切换Java版本类似的cli工具,但是首字母缩写jvm已经意味着其他含义了:)
Andy

我在采购时收到此错误: /Users/me/.zshrc:8: permission denied: /Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home
cosbor11

55

一个基于/ 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

如果您不使用鱼,则可以在bash中执行类似的操作:

#!/bin/bash

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

然后在javas之间切换:

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


1
这仅针对特定的终端会话进行更改。有没有一种方法可以对此进行更新以在整个系统范围内进行更改?
ENG618 '16

1
我不得不编写export JAVA_HOME=(/usr/libexec/java_home $argv)而不是jhome函数的第二行。
Daniel AA Pelsmaeker

32

这有点棘手,但是请尝试按照在OS X 10.9上安装Java(Mavericks)中描述的步骤进行操作。基本上,您必须将别名更新为java

一步步:

安装JDK 1.7之后,您需要执行sudo ln -snf以便将链接更改为current java。为此,请打开终端并发出命令:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents \
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

请注意,目录jdk1.7.0_51.jdk可能会根据您安装的SDK版本而更改。

现在,您需要设置JAVA_HOME指向jdk_1.7.0_xx.jdk安装位置。再次打开终端并输入:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home"

您可以export JAVA_HOME.bashrc文件中添加以上行,以在终端中永久拥有Java


1
如何设置JAVA_HOME变量?我在其中设置了特定的位置吗?
Venkat 2014年

我要在哪里导出JAVA_HOME?并将其保存在哪里?
Venkat 2014年

1
我已经更新了答案。您知道已安装的SDK版本吗?文件夹名称带有SDK版本号,因此上面的命令可能会有所变化。
Trein 2014年

我安装了最新的一个,我认为这是51
Venkat

该变量JAVA_HOME将在当前终端会话中导出。您可以根据需要将其添加到我们的产品中.bashrc。我将使命令适应最新版本。
Trein 2014年

32

使用jenv是一种简单的方法。

1.安装jenv

    curl -s get.jenv.io | 重击

2.配置jenv

    cd〜/ .jenv /候选人/
    mkdir Java
    CD Java
    mkdir 1.7
    mkdir 1.8

3.符号链接jdk路径

    ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin〜/ .jenv / candidates / java / 1.7
    ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin〜/ .jenv / candidates / java / 1.8

4,你们都准备好了

切换命令:

jenv使用java 1.8

默认设置:

jenv默认java 1.7


干净而不错的解决方案。
pinturic

我不得不使用“ jenv shell 1.8”,而不是“ jenv use java 1.8”。根据需要,“外壳”也可以是“全局”或“本地”。
史蒂夫·

1
jenv很好用。但是,建议不要这样做,因为它不会“真正”更改所使用的默认Java版本,这可以通过运行命令“ / usr / libexec / java_home -V”(仅运行JAVA_HOME)来明显看出。这在某些应用程序(例如Eclipse)中引起了奇怪的问题。
simon

除了那偏执的部分,我建议不要卷曲任何东西来打击。即使您认为该站点是受信任的,也没有人可以保证您不会被黑客入侵。使用操作系统的软件包管理器。
Aleksandr Kravets

该信息已过时。查看官方文档更详细的说明
fabianopinto

28

安装JDK,而不仅仅是JRE

/usr/libexec/java_home -v 1.8

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

下一个

touch .bash_profile

open -a TextEdit.app .bash_profile

TextEdit将显示一个空白页面,您可以填写。

添加到文档: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

在终端:

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

尝试命令:

javac -version

应该输出:

javac 1.8.0_111

26

tl; dr

添加行:

export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home'

到文件

~/.bash_profile

(用下载的版本替换jdk1.8.0_144.jdk)

然后 source ~/.bash_profile


22

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

将所需的JVM版本添加到jenv:

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

这对我来说很完美,谢谢!
Fernando Gabrieli

我正在使用类似的工具:sdkman.io/usage-IMHO比手动别名等更好的方法
SathOkh

12
function setjdk() {
  if [ $# -ne 0 ]; then
    removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
    if [ -n "${JAVA_HOME+x}" ]; then
      removeFromPath $JAVA_HOME
    fi
    export JAVA_HOME=`/usr/libexec/java_home -v $@`
    export PATH=$JAVA_HOME/bin:$PATH
  fi
}

把这个在你的〜/ .profile文件,并用它在你的终端,像这样 setjdk 1.8setjdk 1.7setjdk 9等等...

如果没有,removeFromPath那就是:

function removeFromPath() { export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;") }


12

使用终端的四个简单步骤,适用于使用默认流程的人。.:)

  1. echo $JAVA_HOME给您当前的Java主页。例如:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/

  2. cd /Library/Java/JavaVirtualMachines/ 会将您带到您通常安装jdks的文件夹中(您的计算机可能有所不同)

  3. ls显示可用的文件夹(通常这将有版本号,用于如:jdk1.8.0_191.jdk openjdk-11.0.2.jdk
  4. export JAVA_HOME='/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home' 将改变java的家。

8

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

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

8

macOS El Capitan或更高版本将选择中提供的JDK的更高版本/Library/Java/JavaVirtualMachines,因此为了降级,您可以将文件重命名为Info.plist其他名称,Info.plist.disabled以便OS选择较早的版本。


最简单的方法(::谢谢
Satheesh Srinivasan

6

从苹果官方的java_home(1)手册页

**USAGE**

   /usr/libexec/java_home  helps  users  set a $JAVA_HOME in their login rc files, or provides a way for
   command-line Java tools to use the most appropriate JVM which can satisfy a minimum version or archi-
   tecture  requirement.  The --exec argument can invoke tools in the selected $JAVA_HOME/bin directory,
   which is useful for starting Java command-line tools from launchd plists without hardcoding the  full
   path to the Java command-line tool.

   Usage for bash-style shells:
          $ export JAVA_HOME=`/usr/libexec/java_home`

   Usage for csh-style shells:
          % setenv JAVA_HOME `/usr/libexec/java_home`

6

首先找出您将环境变量存储在哪里-

  1. emacs
  2. bash_profile
  3. zshrc文件

设置环境变量的步骤:-

  1. 从JAVA下载jdk
  2. 双击安装
  3. 现在在文件中设置环境变量

    一个。对于emacs.profile,您可以使用此链接或查看下面的屏幕截图

在此处输入图片说明

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版本。


5

JDK切换脚本

我已经改写了@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)

5

如果仍然无法设置。使用此命令。

导出JAVA_HOME =/usr/libexec/java_home -v 1.8

那你就得用这个

导出JAVA_HOME =$(/usr/libexec/java_home -v 1.8)

它肯定会工作。


4

您可以将其添加到.bash_profile中以默认设置版本。

//Open bash profile
open ~/.bash_profile

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

// run bash profile
source ~/.bash_profile

谢谢!注意事项,必须包含`标记。显然,将1.8替换为您可能需要的任何版本。以我的情况而言13.0.2
Jamie S

3

如果您使用的是Fish,并且您使用的是Mac,并且希望能够在JDK之间进行切换,那么以下内容在Mac上适用于我。

@kenglxn的答案对我不起作用,我发现bcos没有设置-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

2

如果您有多个版本,并且想要使用特定版本来运行某些版本,请使用以下示例:

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

2

基于@markhellewell的答案,我创建了几个别名函数将为您完成此操作。只需将它们添加到您的外壳启动文件中

#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


2

这是我在Linux (Ubuntu / Mint mate)上做的方法,我想Mac也可以做类似的事情。


安装和配置

脚步:

  • [基本-部分]
  • 下载jdk .tgz文件)手动。
  • 在适当的位置正确解压缩并重命名。
    例如 /mnt/star/program/java/jdk-1.8
  • 进行软链接,稍后将更改该软链接以切换Java版本。
    例如,ln -s /mnt/star/program/java/jdk-1.8 /mnt/star/program/java/java
    因此/mnt/star/program/java/java是软链接。
  • JAVA_HOME在启动脚本中设置。
    可以使用/etc/profile.d/eric.sh或这样的文件~/.bashrc
    例如JAVA_HOME=/mnt/star/program/java/java
  • 然后打开一个新的bash外壳。java -version应打印Java版本。
  • [更多版本-部分]
  • 与上述步骤类似,根据需要下载并安装更多Java版本。
    例如
    /mnt/star/program/java/jdk-11
  • [切换-部分]
  • 在中~/.bashrc,为各种Java版本定义变量。
    例如
    _E_JAVA_HOME_11='/mnt/star/program/java/jdk-11'
    _E_JAVA_HOME_8='/mnt/star/program/java/jdk-8'
    # dir of default version,
    _E_JAVA_HOME_D=$_E_JAVA_HOME_8
  • 在中~/.bashrc,定义命令以切换Java版本。
    例如
    ## switch java version,
    alias jv11="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_11 $JAVA_HOME"
    alias jv8="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_8 $JAVA_HOME"
    # default java version,
    alias jvd="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_D $JAVA_HOME"
    alias jv="java -version"
  • 在航站楼, source ~/.bashrc使更改生效。
  • 然后可以使用定义的命令进行切换。

命令-从上面的配置

命令:

  • jv11
    切换至Java 11
  • jv8
    切换至Java 8
  • jvd
    切换到默认的Java版本,由_E_JAVA_HOME_D上面的定义表示。
  • jv
    显示Java版本。

输出示例:

eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

eric@eric-pc:~$ jv11
eric@eric-pc:~$ jv
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

eric@eric-pc:~$ jvd
eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

eric@eric-pc:~$ 

机制

  • 通过更改用作的软链接进行切换JAVA_HOME

提示

  • 在手动安装jdk的机器上,我保留次要版本,然后与主要版本但没有次要版本建立软链接。
    例如
    //这是实际目录
    jdk1.8.0_191

    //这是到的软链接 jdk1.8.0_191
    jdk-8

    //这是指向jdk-8或的软链接jdk-11
    java

  • 我在中定义命令别名~/.bashrc,但在单独的文件中定义变量。
    我正在使用~/.eric_var定义变量,~/.bashrc并将其作为源(例如source $HOME/.eric_var)。


1

在给定的列表中包括一个单独安装的JDK的简单方法/usr/libexec/java_home -V是按以下方式对目录进行符号链接:

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

例如,要注册Android Studio附带的JDK(在编写本文时为1.8.0_152),请使用:

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

现在java_home将在下面列出JDK Matching Java Virtual Machines,您可以如上所述选择它。


1

我已经为本地终端做了

export JAVA_8_HOME=(/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/)
export JAVA_13_HOME=(/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/)

alias java8='export JAVA_HOME=$JAVA_8_HOME; alias java="$JAVA_8_HOME/bin/java"; $JAVA_8_HOME/bin/java -version'
alias java13='export JAVA_HOME=$JAVA_13_HOME; alias java="$JAVA_13_HOME/bin/java"; $JAVA_13_HOME/bin/java -version'

export JAVA_HOME=$JAVA_13_HOME


-6

太容易的解决方案:太令人头疼了-这是对我有用的快速简便的解决方案。

Mac OS Sierra版本10.12.13

  1. 使用快捷键:CMD + SHIFT + G-输入“ / Library /”

  2. 查找JAVA文件夹

  3. 右键单击Java文件夹=移至废纸((需要密码)

  4. 安装:Java SE开发套件8 jdk-8u131-macosx-x64.dmg | 下载Javascript SDK

  5. 确保新的JAVA文件夹出现在/ LIBRARY /
  6. 安装Eclipse | 为Java开发人员安装Eclipse IDE
  7. 繁荣完成
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.