macOS - 如何安装 Java 17

新手上路,请多包涵

有人可以告诉我在 Mac 上安装 Java 的步骤吗?

我做了 brew install java

我明白了

Warning: openjdk 17.0.1 is already installed and up-to-date.
To reinstall 17.0.1, run:
  brew reinstall openjdk

如果我执行 java -version,我会得到这个。

 openjdk version "13.0.8" 2021-07-20

如果我导航到 /Library/Java ,我有 2 个空目录。

Java 17 安装在哪里?

原文由 RamPrakash 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.5k
2 个回答

Java 不介意你安装多个版本。这通常是必需的; java 不向后兼容(它试图改变很少,但是例如 java8 到 java9 的转换破坏了很多东西,其中很多都是不必要的,而且很多都是库和应用程序无法合理预期或修复的,所以一堆 java 应用程序和库仅在 java8 上运行——只是一个例子)。

所以,是的,您已经安装了 JDK17。另外,是的,如果您只是运行 java 而没有指定您想要哪个,那么您恰好会在此处获得 java13。

要查看所有已安装的 javas,您可以运行:

 /usr/libexec/java_home -V

要“覆盖”,您可以使用类似的东西(取决于您在 Mac 上使用的 shell):

 export JAVA_HOME=`/usr/libexec/java_home -v 17`

(反引号的意思是:运行它然后获取它的输出并将其视为表达式的“值”。在这里,将它分配给 JAVA_HOME env var -v 17 请求到 java 17 的路径。 -V 选项列出了所有并且是为了你的眼球,而不是脚本 -v 选项主要用于脚本,这就是我们在这里使用它的方式)。

JAVA_HOME which java is used by some things, but the java you get when you just type java is /usr/bin/java , and that executable实际上只是一个包装器,它从所有已安装的版本中挑选一个 java 来运行。它使用 JAVA_HOME 来决定实际运行哪个 java。所有常用命令都有包装器( javac )。您可以随时运行例如 which javac 以查看实际运行的内容;您可能会看到 /usr/bin/javac/usr/bin 中的所有内容都是查看 JAVA_HOME 然后运行它在 那里 找到的二进制文件的包装器之一。

原文由 rzwitserloot 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 2022 年,即使您只能使用 brew ..

 brew install openjdk@17

Java 将安装在这里:

 /usr/local/opt/openjdk@17/bin/java

为了让系统 Java 包装器找到这个 JDK,将它与以下符号链接:

 sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

…试试 sdkman ,它比 brew

 curl -s "https://get.sdkman.io" | bash

然后打开一个 新的 shell 并尝试 list 看看你能安装什么 ;-)

 sdk list java

在撰写本文时,您可以使用:

 sdk install java 17.0.4.1-tem

Java 将安装在这里:

 /Users/freedev/.sdkman/candidates/java/17.0.4.1-tem

原文由 freedev 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题