为什么Java包装程序没有选择macOS上JAVA_HOME中指定的正确版本? [英] Why isn't java wrapper not picking up the right version specified in JAVA_HOME on macOS?

查看:41
本文介绍了为什么Java包装程序没有选择macOS上JAVA_HOME中指定的正确版本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在macOS High Sierra 10.13.6上安装了OpenJDK 14

Installed OpenJDK 14 on macOS High Sierra 10.13.6

解压缩该文件夹并将其移动到JavaVirtualMachines文件夹下.

Unzipped and moved the folder under the JavaVirtualMachines folder.

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

为什么仍然选择旧版本?到目前为止,我已经读过的所有答案都表明/usr/bin/java应该委托给JAVA_HOME值.也许新的眼球可以解释这一点.

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. 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)

推荐答案

它可能是从PATH中获取Java的,而该PATH只是因为复制了SDK而没有改变.

It's probably picking up Java from the PATH which hasn't changed just because you copied the SDK.

我衷心推荐使用SDKMan( https://sdkman.io/).它将为您管理所有这些东西-这是一个很棒的工具.

I heartily recommend using SDKMan (https://sdkman.io/). It will manage all this stuff for you - it's a great tool.

这篇关于为什么Java包装程序没有选择macOS上JAVA_HOME中指定的正确版本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆