首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java -version不变

java -version不变
EN

Stack Overflow用户
提问于 2021-02-18 05:03:57
回答 2查看 333关注 0票数 1

在我的Mac上运行Big Sur 11.2和zsh时,我在更改java版本时遇到了问题。我想将Java1.8设置为默认设置,因此我使用以下命令设置JAVA_HOME:

代码语言:javascript
复制
$ unset JAVA_HOME
$ export JAVA_HOME=$(/usr/libexec/java_home -v "1.8.0_281")
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home

但是,当我运行java -version时,我一直使用JDK15作为当前的默认值。然后,我从JavaVirtualMachines目录中删除了jdk15,并重复了JAVA_HOME的设置,但我继续观察到相同的结果。

EN

回答 2

Stack Overflow用户

发布于 2021-02-18 05:27:06

到目前为止,其他答案都是关于$PATH的。这是一个转移注意力的问题;/usr/bin/java在路径上,它应该留在路径上,它是一个轻量级的包装器,可以转到您实际选择的java安装。

推荐的策略是只使用工具来为您解决此问题,例如jEnv。如果您有brew,请通过brew安装,否则请按照网站上的说明进行操作。

如果您不想走既定的使用jEnv的路线,那么实际上,不推荐的路线是扰乱JAVA_HOME。/usr/bin/java将使用从/usr/libexec/java_home中传出的任何默认设置。java_home将遵从JAVA_HOME (环境变量)的说法;只有当它未设置时,它才会为您提供自己的默认值,这通常是最新安装的,否则很难更改。

它不能为你工作的事实表明你有某种不同的外壳,或者java_home没有列出java版本,或者你以一些非常严重的方式扰乱了PATH (涉及从mac磁盘上移除安全控制等等),所以我怀疑这就是-仔细检查你到目前为止所做的一切?你用的是哪个mac版本?

一个来自mac的例子:

代码语言:javascript
复制
/usr/libexec/java_home
> /Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home
java -version
> openjdk version "14.0.1" 2020-04-14

/usr/libexec/java_home -v 1.8
> /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

/usr/libexec/java_home
> /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
java -version
> openjdk version "1.8.0_252"
票数 3
EN

Stack Overflow用户

发布于 2021-02-18 05:07:59

您应该确保正确的java版本路径在path环境变量中排在第一位

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66249928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档