前言
从Windows转为Mac的用户,第一次配置JDK环境变量可能有些不知所措;上次给搭建介绍了如何在Linux上配置JDK,这次给大家介绍怎么在Mac上配置JDK。配置好JDK,就可以运行Minecraft服务器
或者是Apache Tomcat
服务器等基于Java虚拟机
的应用程序。
一般可选方法有(本次均会详细演示和解析):
- 使用Homebrew配置安装
- 手动配置安装
本次文章,先教大家配置默认JDK(配置JAVA_HOME)
,再教大家配置Jenv来实现多种JDK共存和切换
。如果你没有多版本JDK的需要,那么只需要配置默认JDK即可。
JDK的配置(常规JDK配置方法)
这边以OpenJDK这样的生产环境JDK配置为主,如果你想配置Oracle的JDK,请使用手动配置安装。
使用Homebrew配置安装
Mac用户可以自己配置Homebrew,如果事先没有配置Homebrew,可以查看这篇文章来配置Homebrew:
https://www.mintimate.cn/2020/04/05/Homebrew
Homebrew配置好后,在Terminal输入brew -v
查看:
mintimate@MintimateMacBook-Pro ~ % brew -v
Homebrew 2.7.1
Homebrew/homebrew-core (git revision 1df47; last commit 2020-12-28)
Homebrew/homebrew-cask (git revision 60c3c; last commit 2020-12-28)
如果Homebrew长时间未响应,可以换源Homebrew到清华源
之后,我们可以使用Homebrew来安装并自动配置JDK:
代码语言:txt复制# 使用Homebrew搜索JDK
brew search openjdk
# 安装OpenJDK8
brew install openjdk@8
之后片刻等待后,JDK就安装好了。
手动配置安装
其实个人还是推荐自己手动配置
下载JDK
首先我们需要下载JDK的包,大家可以按需下载:
- OpenJDK(Zulu):https://cn.azul.com/downloads/zulu-community/?package=jdk
- OracleJDK:https://www.oracle.com/java/technologies/javase-downloads.html
版本号为8u211
以后的OracleJDK版本
,许可协议从BCL
换成了OTN
,这就意味着,你不能在生产环境使用这个版本了,所以个人推荐使用OpenJDK8或OpenJDK11:
下载好后,解压:
再打开该文件,提取里面的包含Contents
的文件夹,如:
macos自带一个Java虚拟机目录,只是默认为空;我们就把我们自己的JDK移动进去,terminal内输入:
代码语言:txt复制open /Library/Java/JavaVirtualMachines
当然,对terminal命令熟悉,可以使用mv
命令,这里不再赘述。
配置环境变量
在比较旧版本的macOS内,环境变量的配置文件是 ~/.bash_profile
;新版本的macOS(Catalina
以后)使用zsh
,所以配置文件是~/.zshrc
。
注意:虽然和Linux一样,可以配置/etc/profile文件,且优先级最高,但是原则上为保持macOS稳定和完整安全,不推荐直接操作/etc/profile文件。
我使用的是Big Sur
所以,配置~/.zshrc
文件:
open ~/.zshrc
我这里使用文本编辑器打开,你也可以直接用vim或vi命令。
在文末追加:
代码语言:txt复制JAVA_HOME="/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home"
CLASS_PATH="$JAVA_HOME/lib"
PATH=".:$PATH:$JAVA_HOME/bin"
之后,保存后,在terminal输入:
代码语言:txt复制source ~/.zshrc
配置生效,JDK配置完成
Jenv的配置--多种JDK共存和切换
在一些情况下,我们需要切换JDK的版本,比如:我们拷贝他人项目,他人项目JDK版本为11,而你自己配置的JDK版本为8
,存在不兼容。这个时候我们就需要去调整JDK版本,有没有方法可以一劳永逸,轻松切换JDK呢?答案是Jenv:
什么是Jenv
Jenv项目地址:https://www.jenv.be
按照官网的解释:
jEnv is a command line tool to help you forget how to set the JAVA_HOME environment variable
简单地说:使用一条命令可以轻松配置JAVA_HOME到环境变量
。
如何配置Jenv
Jenv配置方法很简单,两个方法:使用Homebrew配置安装
、手动配置安装
使用Homebrew配置安装
刚刚我们已经介绍如何安装Homebrew
,所以再次调用Homebrew
来安装:
brew install jenv
之后根据自己terminal使用的是bash
还是zsh
来添加环境变量:
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
如:Big Sur
用户,打开~/.zshrc
文件,追加内容:
之后,和上文一样source ~/.zshrc
一次,重载配置即可。
手动配置安装
其实jenv的话,个人还是推荐Homebrew自动配置
不过,`手动配置手动配置也很简单,我们下载Jenv的发行版本包:
- 手动配置Git部署在确保你设备按照了Git情况下,终端输入:# Jenv
export PATH="/Users/mintimate/.jenv/bin:$PATH"
eval "$(jenv init -)"之后,和上文一样
source ~/.zshrc
一次,重载配置即可。 - GitHub项目地址
- 镜像下载
镜像下载适用于访问GitHub过慢,或无法访问用户。
下载后,得到
jenv-0.5.4.zip
压缩文件,使用unzip
命令或解压工具解压。解压到自己知道路径的地址,比如我解压的地址是/Users/mintimate/.jenv
: jenv解压后 所以,我们环境变量就这样写:
如何使用Jenv
Jenv的使用很简单,利用配置JDK8的方法,我下载了JDK11,存储地址是/Library/Java/JavaVirtualMachines/zulu-11.jdk
,我们添加到Jenv里:
jenv add /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
可以看到,jenv自动检录多余的名称。你可以放任不管,但是如果你是“强迫症”人群,可以手动remove
多余名称:
之后,使用versions
命令,可以看到Jenv管理的JDK版本:
jenv versions
当我们要在当前目录下,调用JDK11时候,终端输入:
代码语言:txt复制jenv local 11
这个时候,输入java -version
就是JDK11了:
openjdk version "11.0.9" 2020-10-20 LTS
OpenJDK Runtime Environment Zulu11.43 21-CA (build 11.0.9 11-LTS)
OpenJDK 64-Bit Server VM Zulu11.43 21-CA (build 11.0.9 11-LTS, mixed mode)
Tips
其实,对于电脑配置JDK;我个人建议是配置JDK8
和JDK11
,虽然JDK8很稳定,但是也确实有点年代,可以往JDK11靠了。而是否使用Homebrew配置,我个人倾向:
- JDK自己手动配置
- Jenv使用Homebrew配置