首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >macOS -如何安装Java17

macOS -如何安装Java17
EN

Stack Overflow用户
提问于 2021-11-07 18:22:40
回答 9查看 54.7K关注 0票数 31

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

我做了brew install java

我明白了

代码语言:javascript
复制
Warning: openjdk 17.0.1 is already installed and up-to-date.
To reinstall 17.0.1, run:
  brew reinstall openjdk

如果我使用java -version,我就会得到这个。

代码语言:javascript
复制
openjdk version "13.0.8" 2021-07-20

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

哪里安装了java 17??

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2021-11-07 18:40:00

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

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

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

代码语言:javascript
复制
/usr/libexec/java_home -V

要“重写”,您可以使用类似的内容(取决于您在mac上使用的shell ):

代码语言:javascript
复制
export JAVA_HOME=`/usr/libexec/java_home -v 17`

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

JAVA_HOME决定哪些java被某些东西使用,但是当您只键入java时得到的java/usr/bin/java,而该可执行文件实际上只是一个包装器,它从所有安装的版本中选择要运行的java。它使用JAVA_HOME来决定实际运行哪个java。所有公共命令都有包装器(javac也是)。您总是可以运行which javac来查看实际运行的内容;您可能会看到/usr/bin/javac/usr/bin中的所有东西都是这些包装器中的一个,它查看JAVA_HOME,然后运行它在那里找到的二进制文件。

票数 15
EN

Stack Overflow用户

发布于 2022-01-10 08:32:33

2022年,即使你可以只使用brew..。

代码语言:javascript
复制
brew install openjdk@17 

Java将在这里安装:

代码语言:javascript
复制
/usr/local/opt/openjdk@17/bin/java

为了让系统Java包装器找到这个JDK,将它与:

代码语言:javascript
复制
sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

...give a尝试sdkman,它比brew好得多

代码语言:javascript
复制
curl -s "https://get.sdkman.io" | bash

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

代码语言:javascript
复制
sdk list java 

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

代码语言:javascript
复制
sdk install java 17.0.4.1-tem

Java将在这里安装:

代码语言:javascript
复制
/Users/freedev/.sdkman/candidates/java/17.0.4.1-tem
票数 63
EN

Stack Overflow用户

发布于 2022-06-27 05:53:36

指定版本17

代码语言:javascript
复制
brew install openjdk@17

稍后,我添加了一个链接:

代码语言:javascript
复制
sudo ln -sfn /usr/local/opt/openjdk@17/libexec/openjdk.jdk \
     /Library/Java/JavaVirtualMachines/openjdk-17.jdk

并使用延夫控制要使用的java版本。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69875335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档