我试图弄清楚为什么当输入时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