Hik*_*ndo 10 java macos java-home
我的 Macbook 上有 2 个 JAVA 版本。我想将版本从 14 更改为 11。我在互联网上找到了 2 个解决方案,但都不起作用。
我的java -version结果是
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+14)
OpenJDK 64-Bit Server VM (build 14.0.1+14, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
第一个解决方案(如何在 OS X 上设置或更改默认 Java (JDK) 版本?), 我运行/usr/libexec/java_home -V然后得到下面的结果,
Matching Java Virtual Machines (2):
14.0.1, x86_64: "OpenJDK 14.0.1" /Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home
11.0.8, x86_64: "Java SE 11.0.8" /Library/Java/JavaVirtualMachines/jdk-11.0.8.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
然后我做了
export JAVA_HOME=`/usr/libexec/java_home -v 11.0.8`
Run Code Online (Sandbox Code Playgroud)
从java -version检查后,结果仍然是 14.0.1
第二个解决方案(如何在 Mac 中永久设置 JAVA_HOME?),我编辑 ~/.bash_profile 文件如下,
export JAVA_HOME=`/usr/libexec/java_home -v 11.0.8`
Run Code Online (Sandbox Code Playgroud)
我运行命令
source ~/.bash_profile
echo $JAVA_HOME
Run Code Online (Sandbox Code Playgroud)
它显示了结果,
/Library/Java/JavaVirtualMachines/jdk-11.0.8.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
但是当我用java -version检查结果时,它仍然是 14.0.1
rzw*_*oot 10
安装sdkman来处理相当繁琐的命令行巫毒,你必须使用它来尝试实现这一点。问题是,JAVA_HOME 只是一个环境变量,它不会改变任何东西 - 只有明确查找它的工具(通常,例如 maven 和 ant)才会受到弄乱它的影响。java当您在 Mac 上键入时,它会运行/usr/bin/java,这不是一个即使作为 root 也可以更改的文件。然后,这个 java 将调用真正的 java,并且不会查看 JAVA_HOME来完成工作:它是到 的软链接/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java,并且因为它位于/System您也无法更改它,即使作为 root 也无法更改。
这就是为什么这如此困难,以及为什么你需要一个好的工具(sdkman)来为你做这件事。
删除 JAVA_HOME 周围的引号,然后设置路径变量对我有用(Mac OS Catalina):
export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12160 次 |
| 最近记录: |