将mac jdk版本设置为1.8

Mic*_*Gao 8 java macos openjdk

我已经搜索了几种在Mac上更改JDK版本的方法.

$/usr/libexec/java_home
Run Code Online (Sandbox Code Playgroud)

我得到了

/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

我试过了

$export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

也试过了

/usr/libexec/java_home 1.8.0_31 --exec javac -version
Run Code Online (Sandbox Code Playgroud)

然后我跑了

$echo $JAVA_HOME
Run Code Online (Sandbox Code Playgroud)

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

然后我重新检查java -version

$java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我怎么能真正改变我的mac上的java -version.

and*_*s_a 30

要为您的shell环境将Java设置为1.8 ,请将其放在〜/ .bash_profile中:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
Run Code Online (Sandbox Code Playgroud)

  • 该建议是有效的。就像您在其他评论中所说的那样,您的 .bash_profile 中的其他内容受到了干扰 (2认同)

小智 7

Solution without 3rd party tools:
Run Code Online (Sandbox Code Playgroud)

将所有 JDK 保留在其默认位置,在 /Library/Java/JavaVirtualMachines 下。系统会默认选择最高版本。要在默认情况下排除 JDK,请将其 Contents/Info.plist 重命名为 Info.plist.disabled。当 $JAVA_HOME 指向它或在脚本或配置中显式引用时,该 JDK 仍然可以使用。它会被系统的 java 命令简单地忽略。系统启动器将使用具有 Info.plist 文件的那些中版本最高的 JDK。

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