简短答案

简短答案

我试图弄清楚为什么当输入时java -version会给我 Java 1.7,而 Java 控制面板却说我正在运行 Java 1.8,也是最新更新。

我不知道如何检查重复的 Java 安装,或者如何更改命令java指向的位置。我是一个非常新的 OSX 用户,但有一点 Linux 经验。任何帮助都非常感谢!我提前为这个填鸭式的问题道歉。

答案1

[...] 为什么当输入 java -version 时会给我 Java 1.7,而 Java 控制面板却说我正在运行 java 1.8,也是最新更新。

您的终端必须默认使用其他 Java。

我不知道如何检查重复的 java 安装,或者如何更改 java 命令指向的位置。[...]

使用sudo find / -name java -type f.询问每个看起来合理正确的安装的版本。

答案2

简短答案

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

然后java -version将显示 Java 1.8

macOS 中的 Java 位置

Java 安装在/Library/Java/JavaVirtualMachines/。您可以使用以下命令列出所有已安装的 Java 版本/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

使用环境变量设置要使用的 Java 版本JAVA_HOME,并使用获取适当的值/usr/libexec/java_home -v [version]

jEnv 切换 Java 版本

有一个专门用于管理多个 Java 版本的工具 - jenv. 安装您想要的 Java 版本 -macOS 推荐的方法是使用 Homebrew Cask

添加所有可用的 Java 版本并运行rehash

jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
jenv rehash

您可以设置默认版本

$ jenv versions
  system
  oracle64-1.6.0.51
  oracle64-1.7.0.40
  oracle64-1.8.0-ea
* oracle64-1.8.0.05 (set by /Users/hanxue/.jenv/version)
$ java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

轻松切换版本

$ jenv local oracle64-1.7.0.40

参考

在 OSX 上安装 Java 8 并管理多个 Java 版本 如何在 Mac 上彻底卸载旧版本的 Java

相关内容