macOS - 如何安装 Java 17在2022年,你可以只使用brew

2022-09-01 21:42:27

有人可以让我知道在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

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

Java 17 安装在哪里?


答案 1

在2022年,你可以只使用brew

brew install openjdk

也许你需要更新环境:PATH

export PATH="/usr/local/opt/openjdk/bin:$PATH"

...而对于以后给 sdkman 一个尝试,是比brew

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

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

sdk list java 

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

sdk install java 17.0.1-tem

答案 2

Java不介意你是否安装多个版本。这通常是必需的;java不是向后兼容的(它试图改变很少,但是例如,java8到java9的过渡破坏了大量的东西,其中大部分是不必要的,其中大部分不是可以预期或可由库和应用程序修复的,所以一堆Java应用程序和库只能在java8上运行 - 只是一个例子)。

所以,是的,你已经安装了JDK17。另外,是的,如果你只是运行而没有指定你想要的那个,那么你碰巧在这里得到java13。java

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

/usr/libexec/java_home -V

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

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

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

JAVA_HOME决定了某些东西使用哪个java,但是当你只是键入时得到的是,并且该可执行文件实际上只是一个包装器,它从所有已安装的版本中选择一个java来运行。它使用JAVA_HOME来决定实际运行哪个java。所有常用命令都有包装器(太)。您可以随时运行,例如 看看它实际运行了什么;你可能会看到.其中的所有内容都是这些包装器之一,它查看JAVA_HOME,然后运行它在那里找到的二进制文件。javajava/usr/bin/javajavacwhich javac/usr/bin/javac/usr/bin