MacOS之Java环境搭建
1.HomeBrew
这是安装brew的方法
1.HomeBrew和HomeBrew Cask的安装和使用 (对于brew的安装和使用讲了很多)
2.JDK安装
2.1手动安装
从OpenJDK下载页面手动安装:
(1) 从http://jdk.java.net/11/下载适用于Mac OSX的OpenJDK 11
(2) 解压文档,并将生成的jdk-11.jdk文件夹放入您的/Library/Java/JavaVirtualMachines/文件夹,因为这是JDK安装的标准和预期位置。您也可以在现实中随意安装。
配置环境变量,和Linux中一样,就是在~/.bash_profile文件中添加环境变量。
1 | JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home |
1.macOS 所有版本 JDK 安装指南 (with Homebrew) (包括了使用brew安装jdk,以及各个版本之间的关系,Orcale OpenJDK以及AdoptOpenJDK)
2.如何在MacOSX上安装OpenJDKJava 11,允许版本切换 (这里也有其他的安装选项可以供选择,主要是集中在讨论中,可以使用sdkman进行安装并进行版本切换)
3.HomeBrew和HomeBrew Cask的安装和使用 (这里涉及到一个概念就是使用brew和brew cask的区别,以及他们的安装方式)
4.brew和brew cask有什么区别? (更加具体的区别可以在知乎讨论上进行查看)
5.adoptopenjdk最新发布
2.2自动安装
使用brew命令,可以自动安装,自动安装的java目录在 /Library/Java/JavaVirtualMachines/ 目录下。目前我就是使用这个方式进行安装的,但是这里的jdk版本也不是最新的,2023年04月06日,只能安装到最高 adoptopenjdk/openjdk/adoptopenjdk16 版本。
1 | ## 增加库 |
1.MAC安装JDK及环境变量配置 (安装Orcale的jdk选项)
2.MacOS Homebrew 安装 OpenJDK (这篇安装和卸载AdoptOpenJDK/openjdk讲的很全面,还有卸载以及切换版本,这里还有配置环境变量的部分,但是我没有配置,依然可以使用命令行)
3.OpenJDK和AdoptOpenJDK之间的区别 (OpenJDK和AdoptOpenJDK之间的区别)
4.Jelastic Extended Support of Java Runtimes: AdoptOpenJDK, Liberica, Zulu, Corretto, OpenJ9 and GraalVM (各个版本的的OpenJDK的区别)
5.Mac配置多个Java版本 (使用工具:brew cask,可以通过手动修改环境变量的方式,切换不同的java版本)
6.brew java 切换_Mac上Homebrew安装多版本Java
7.Mac - 如何在Mac上安装多个版本openjdk并有效管理 这篇文章讲了配置jenv版本管理工具:brew install jenv。
8.【已解决】Error:
brew cask
is no longer a brew
command. Use brew <command> --cask
instead.3.Maven安装
和linux以及windows上安装方法大同小异,都是下载,解压,然后配置环境变量,重新加载环境变量,最后就是验证了。
1 | ## 编辑用户配置文件 |
如果在zsh环境下,还是无法识别,可以在zshrc配置文件中添加一下.bash_profile
1 | ## 编辑zshrc配置文件 |
Mac上有3处可以设置环境变量:
- /etc/profile :系统全局变量,系统启动即加载该文件的配置(不建议添加)
- /etc/bashrc:所有类型的bash shell 都会读取该文件的配置
- ~/.bash_profile:配置用户级环境变量,在系统用户文件夹下创建,当用户登录时,该文件会被执行且仅执行一次
4.SDKMan
可以使用SDKMan进行安装和管理jdk版本,安装和配置SDKMan也是挺简单的,只需要一行命令就可以了。
1 | ## 安装 |
问题
(1) curl: (92) HTTP/2 stream 1 was not closed cleanly before end of the underlying stream
在安装的时候,出现了这个问题。总是安装不成功,我重新删除:rm -rf ~/.sdkman,增加了–http1.1 参数重新安装也不行,在执行download的时候,出现了:“curl: (56) Recv failure: Operation timed out” 错误。
【解决办法】
问题出现的诡异,解决也非常的诡异,其实就是同样的语句,可是执行出来的结果就是不一样。
1 | ## 第一次,不成功 |
1.curl: (92) HTTP/2 stream 1 was not closed cleanly
2.解决 HTTP/2 stream 1 was not closed cleanly before end of the underlying stream 这是git的问题
3.Getting “curl: (92) HTTP/2 stream 1 was not closed cleanly: INTERNAL_ERROR (err 2)” curl “https://console.aws.example/api/xxx" -b “SESSION=$SESSION” –http1.1
4.curl网络访问时报错:(56) Recv failure: Connection timed out