无法将 Java 版本切换到 Java 17
Not able to switch the Java version to Java 17
再次发帖,因为有人将我的问题移到了一个没有太多 activity 的社区,那里提供的解决方案 in the comment 没有用。
我已经从 here.
安装了 Amazon Corretto Java 17
但是,我无法将 Java 版本切换到 Java 17.
以下是我已经尝试过的步骤:
1.
export JAVA_HOME=$(`/usr/libexec/java_home -v17`)
export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
- 我还使用以下命令检查了 Java 的最高版本:
/usr/libexec/java_home
它显示正确的 Java 17 版本:
/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
- 我还使用命令
/usr/libexec/java_home -V
检查了我机器上安装的所有 Java 版本,它正确显示 Java 8、11 和 17:
17.0.1 (x86_64) "Amazon.com Inc." - "Amazon Corretto 17" /Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
11.0.9.1 (x86_64) "Amazon.com Inc." - "Amazon Corretto 11" /Users/harsh.pamnani/Library/Java/JavaVirtualMachines/corretto-11.0.9.1/Contents/Home
1.8.0_275 (x86_64) "Amazon" - "Amazon Corretto 8" /Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
- 我还将
step-1
和 step-2
中提到的 JAVA_HOME
导出添加到 .zshrc
和 .bash_profile
中。
- 我关注了关于 Whosebug 的多个问题和多个
博客也是如此。例如,
How to set or change the default Java (JDK) version on macOS?
https://java.tutorials24x7.com/blog/how-to-switch-java-version-on-mac
https://www.lotharschulz.info/2019/08/21/mac-change-default-java-version
https://akrabat.com/using-jenv-to-select-java-version-on-macos/
https://www.happycoders.eu/java/how-to-switch-multiple-java-versions-windows/
- 我正在使用
jenv
在不同的 java 版本之间切换。即使 jenv
也无法找到 Java 17。我使用了 jenv versions
,以下是输出:
system
1.8
1.8.0.275
11
11.0
* 11.0.9.1 (set by /Users/harsh.pamnani/.jenv/version)
corretto64-1.8.0.275
corretto64-11.0.9.1
- 我还检查过
JAVA_HOME
指向 Java 17
。这是屏幕截图:Screenshot
即使在我执行 java --version
时执行了上述所有步骤,它仍然设置为 Java 11:
openjdk 11.0.9.1 2020-11-04 LTS
OpenJDK Runtime Environment Corretto-11.0.9.12.1 (build 11.0.9.1+12-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.9.12.1 (build 11.0.9.1+12-LTS, mixed mode)
- 我也检查了
PATH
变量,似乎没有什么与 Java 相关。以下是路径变量的输出:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Users/harsh.pamnani/Downloads/apache-maven-3.6.3/bin
如果我遗漏了什么,有人可以帮助我理解吗?谢谢。
which java
通常用于在您键入 java
.
时查找您正在调用的确切可执行文件
请记住,当您输入命令 java
时,不会使用您的 JAVA_HOME 设置。相反,使用操作系统 PATH
设置。如果您在要在路径上使用的那个“之前”有一个 java 的旧副本,那么这就是操作系统会给您的。要解决这样的问题,您需要更改路径,使所需 java 版本的目录位于任何其他 java 版本之前。
我确实看到您检查了 PATH
设置,但我认为您不知道要检查什么,因为您只列出了目录。在这些目录中,存在 java
可执行文件。如果旧的可执行文件位于路径中较早的目录中,那么无论任何其他设置如何,这就是 java 从命令行 运行 时您将获得的版本。
现在,正确设置 JAVA_HOME 仍然很重要,因为当各种 Java 工具想要发现项目时,您可能会读取 JAVA_HOME(如果它是错误的,被定向到一个不匹配的 JVM)。
再次发帖,因为有人将我的问题移到了一个没有太多 activity 的社区,那里提供的解决方案 in the comment 没有用。
我已经从 here.
安装了 Amazon Corretto Java 17但是,我无法将 Java 版本切换到 Java 17.
以下是我已经尝试过的步骤:
1.
export JAVA_HOME=$(`/usr/libexec/java_home -v17`)
export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
- 我还使用以下命令检查了 Java 的最高版本:
/usr/libexec/java_home
它显示正确的 Java 17 版本:/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
- 我还使用命令
/usr/libexec/java_home -V
检查了我机器上安装的所有 Java 版本,它正确显示 Java 8、11 和 17:
17.0.1 (x86_64) "Amazon.com Inc." - "Amazon Corretto 17" /Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
11.0.9.1 (x86_64) "Amazon.com Inc." - "Amazon Corretto 11" /Users/harsh.pamnani/Library/Java/JavaVirtualMachines/corretto-11.0.9.1/Contents/Home
1.8.0_275 (x86_64) "Amazon" - "Amazon Corretto 8" /Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
- 我还将
step-1
和step-2
中提到的JAVA_HOME
导出添加到.zshrc
和.bash_profile
中。 - 我关注了关于 Whosebug 的多个问题和多个 博客也是如此。例如,
How to set or change the default Java (JDK) version on macOS?
https://java.tutorials24x7.com/blog/how-to-switch-java-version-on-mac
https://www.lotharschulz.info/2019/08/21/mac-change-default-java-version
https://akrabat.com/using-jenv-to-select-java-version-on-macos/
https://www.happycoders.eu/java/how-to-switch-multiple-java-versions-windows/
- 我正在使用
jenv
在不同的 java 版本之间切换。即使jenv
也无法找到 Java 17。我使用了jenv versions
,以下是输出:
system
1.8
1.8.0.275
11
11.0
* 11.0.9.1 (set by /Users/harsh.pamnani/.jenv/version)
corretto64-1.8.0.275
corretto64-11.0.9.1
- 我还检查过
JAVA_HOME
指向Java 17
。这是屏幕截图:Screenshot
即使在我执行 java --version
时执行了上述所有步骤,它仍然设置为 Java 11:
openjdk 11.0.9.1 2020-11-04 LTS
OpenJDK Runtime Environment Corretto-11.0.9.12.1 (build 11.0.9.1+12-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.9.12.1 (build 11.0.9.1+12-LTS, mixed mode)
- 我也检查了
PATH
变量,似乎没有什么与 Java 相关。以下是路径变量的输出:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Users/harsh.pamnani/Downloads/apache-maven-3.6.3/bin
如果我遗漏了什么,有人可以帮助我理解吗?谢谢。
which java
通常用于在您键入 java
.
请记住,当您输入命令 java
时,不会使用您的 JAVA_HOME 设置。相反,使用操作系统 PATH
设置。如果您在要在路径上使用的那个“之前”有一个 java 的旧副本,那么这就是操作系统会给您的。要解决这样的问题,您需要更改路径,使所需 java 版本的目录位于任何其他 java 版本之前。
我确实看到您检查了 PATH
设置,但我认为您不知道要检查什么,因为您只列出了目录。在这些目录中,存在 java
可执行文件。如果旧的可执行文件位于路径中较早的目录中,那么无论任何其他设置如何,这就是 java 从命令行 运行 时您将获得的版本。
现在,正确设置 JAVA_HOME 仍然很重要,因为当各种 Java 工具想要发现项目时,您可能会读取 JAVA_HOME(如果它是错误的,被定向到一个不匹配的 JVM)。