Mac的JDK和Jenv(JAVA_HOME管理器)的详细配置使用教程

2021-07-06 12:07:55 浏览数 (1)

前言

从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查看:

代码语言:txt复制
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长时间未响应,可以换源Homebrew到清华源

之后,我们可以使用Homebrew来安装并自动配置JDK:

代码语言:txt复制
# 使用Homebrew搜索JDK
brew search openjdk
# 安装OpenJDK8
brew install openjdk@8
Homebrew搜索OpenJDKHomebrew搜索OpenJDK

之后片刻等待后,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:

JDK的选择JDK的选择

下载好后,解压:

解压后得到的文件解压后得到的文件

再打开该文件,提取里面的包含Contents的文件夹,如:

包含Contents的文件,为JDK包含Contents的文件,为JDK

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文件:

代码语言:txt复制
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来安装:

代码语言:txt复制
brew install jenv

之后根据自己terminal使用的是bash还是zsh来添加环境变量:

代码语言:txt复制
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"

如:Big Sur用户,打开~/.zshrc文件,追加内容:

jenv环境变量jenv环境变量

之后,和上文一样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

Jenv的使用很简单,利用配置JDK8的方法,我下载了JDK11,存储地址是/Library/Java/JavaVirtualMachines/zulu-11.jdk,我们添加到Jenv里:

代码语言:txt复制
jenv add /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
jenv添加JDKjenv添加JDK

可以看到,jenv自动检录多余的名称。你可以放任不管,但是如果你是“强迫症”人群,可以手动remove多余名称:

remove多余标签remove多余标签

之后,使用versions命令,可以看到Jenv管理的JDK版本:

代码语言:txt复制
jenv versions
image.pngimage.png

当我们要在当前目录下,调用JDK11时候,终端输入:

代码语言:txt复制
jenv local 11

这个时候,输入java -version就是JDK11了:

代码语言:txt复制
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;我个人建议是配置JDK8JDK11,虽然JDK8很稳定,但是也确实有点年代,可以往JDK11靠了。而是否使用Homebrew配置,我个人倾向

  • JDK自己手动配置
  • Jenv使用Homebrew配置

0 人点赞