在我的Mac上运行Big Sur 11.2和zsh时,我在更改java版本时遇到了问题。我想将Java1.8设置为默认设置,因此我使用以下命令设置JAVA_HOME:
$ 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的设置,但我继续观察到相同的结果。
发布于 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的例子:
/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"发布于 2021-02-18 05:07:59
您应该确保正确的java版本路径在path环境变量中排在第一位
https://stackoverflow.com/questions/66249928
复制相似问题