简体   繁体   English

为什么 java 包装器没有选择 macOS 上的 JAVA_HOME 中指定的正确版本?

[英]Why isn't java wrapper not picking up the right version specified in JAVA_HOME on macOS?

Installed OpenJDK 14 on macOS High Sierra 10.13.6在 macOS High Sierra 10.13.6 上安装 OpenJDK 14

Unzipped and moved the folder under the JavaVirtualMachines folder.解压缩并移动 JavaVirtualMachines 文件夹下的文件夹。

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    14.0.1, x86_64: "OpenJDK 14.0.1"    /Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home
    1.8.0_91, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home

$ printenv | grep JAVA
JAVA_14_HOME=/Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home

$ which java
/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/bin/java

Why is it still picking up the older version?为什么它仍在使用旧版本? All the answers I've read so far indicate that the /usr/bin/java should delegate to the JAVA_HOME value.到目前为止我读过的所有答案都表明 /usr/bin/java 应该委托给 JAVA_HOME 值。 Maybe a fresh set of eyeballs can explain this.也许一组新的眼球可以解释这一点。

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

$ $JAVA_HOME/bin/java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+7)
OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)

It's probably picking up Java from the PATH which hasn't changed just because you copied the SDK.它可能是从 PATH 中获取 Java 并没有改变,因为您复制了 SDK。

I heartily recommend using SDKMan ( https://sdkman.io/ ).我衷心推荐使用 SDKMan ( https://sdkman.io/ )。 It will manage all this stuff for you - it's a great tool.它会为你管理所有这些东西——它是一个很棒的工具。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM