如何让MacOS(Catalina)使用自定义Java版本?
我正在尝试将机器上的默认Java版本从版本15(即openjdk 15.0.1)更改为版本11(即openjdk 11.0.2)。我遵循了在线提供的各种解决方案,但最终我只希望得到以下结果:如何让MacOS(Catalina)使用自定义Java版本?,java,macos,java-11,macos-catalina,Java,Macos,Java 11,Macos Catalina,我正在尝试将机器上的默认Java版本从版本15(即openjdk 15.0.1)更改为版本11(即openjdk 11.0.2)。我遵循了在线提供的各种解决方案,但最终我只希望得到以下结果: $ java --version openjdk 11.0.9 2020-10-20 OpenJDK Runtime Environment (build 11.0.9+9) OpenJDK 64-Bit Server VM (build 11.0.9+9, mixed mode, sharing) 但
$ java --version
openjdk 11.0.9 2020-10-20
OpenJDK Runtime Environment (build 11.0.9+9)
OpenJDK 64-Bit Server VM (build 11.0.9+9, mixed mode, sharing)
但是,我得到的是:
$ java --version
openjdk 15.0.1 2020-10-20
OpenJDK Runtime Environment (build 15.0.1+9)
OpenJDK 64-Bit Server VM (build 15.0.1+9, mixed mode, sharing)
我找到的大多数解决方案都建议为我的JAVA HOME
环境变量设置一个新值(包括内联变量和.bash\u profile
),其中截至目前,我有:
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
甚至完全从/Library/Java/JavaVirtualMachines/
中删除jdk-15.0.1.jdk
似乎也没有改变任何事情。因此,这个JDK必须在其他地方定义和使用,它的存在将覆盖我在.bash\u profile
文件中放置的任何内容。以前有其他人经历过吗?是否可以进行此更改?请确保.bash\u配置文件中关于JAVA\u HOME
的第一行是:
export JAVA_HOME=$(/usr/libexec/JAVA_HOME-v11.0.9)
您可以运行/usr/libexec/java_home-V
查看所有已安装java虚拟机的列表。在我的机器上,我有以下内容(我的机器看起来略有不同,因为此输出来自Big Sur):
底线(这可能在Catalina中不存在,但您可以通过运行/usr/libexec/java_home
来获得它,这是您当前选择的JVM。结果表明,问题出在我的.bash_配置文件
中。虽然我不确定是否每个人都是这样,但我的路径环境变量设置取代了我的java_home 环境变量和myPATH
变量在其中引用了myJAVA\u HOME
变量。这通过在my.bash\u profile
文件中更改以下内容来解决
如果JAVA\u HOME
是唯一添加的变量,那么下面的操作应该有效
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
export PATH=$JAVA_HOME/bin
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
export SOME_OTHER_PATH=/somepath
export PATH=$SOME_OTHER_PATH:$JAVA_HOME/bin
如果还有其他的,那么这应该是可行的
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
export PATH=$JAVA_HOME/bin
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
export SOME_OTHER_PATH=/somepath
export PATH=$SOME_OTHER_PATH:$JAVA_HOME/bin
谢谢大家的帮助!另外,如果链接问题中的第一个答案对你没有帮助,第二个五月。对不起,这又是一个参考答案…不是官方答案,但它是你的朋友。但这只是让JAVA_回家了,对吗?OP说他们尝试过,但它没有改变任何东西…如果我阅读正确的话。@Steve是的,它有。我知道怀疑问题仍然存在于$JAVA_HOME
(我自己处理了很多问题),除非我误解了这个问题,在这种情况下,你链接的问题似乎是最好的选择。嗨@Sam,这是我.bash\u profile
中的第一行。我已经尝试了一些快速解决方案,但我不确定发生了什么。看起来好像它完全忽略了这个文件。@ChloeBennett好的,只是为了让su知道如果文件正常工作,请将行echo“Profile Test”
添加到.bash\u Profile
中,然后打开一个新的shell/源文件以显示您的配置文件。“Profile Test”应该打印在提示符上方。行吗?@Sam,行了。