Mac如何优雅地配置Java开发环境

一、准备

确保已安装Homebrew
命令行复制如下命令即可安装Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

二、安装并配置JDK

2.1 安装OpenJDK

brew search openjdk,查看版本信息(如下图)
image

brew info openjdk@8,查看openjdk@8的安装描述信息
image

  1. Dependencies: 安装openjdk@8需要依赖其他package
  2. Analytics: openjdk@8现阶段的安装统计相关信息

brew install openjdk@8,开始安装
此过程若提示安装失败可以尝试Homebrew更换为国内镜像源 --> 教程传送门
image
如上图所示,openjdk@8就安装好了。

2.2 配置JDK

Mac下让安装的JDK生效及可识别需要如下几步操作:

  1. 执行如下命令:

    sudo ln -sfn /usr/local/opt/openjdk@8/libexec/openjdk.jdk 	/Library/Java/JavaVirtualMachines/openjdk-8.jdk
    
  2. 检查tree /Library/Java
    image

  3. 执行/usr/libexec/java_home
    image

至此基本配置完成,查看一下安装好的Java版本。
image

三、开发工具IDEA

下载链接传送门:IntelliJ IDEA
image

四、最后

回归主题,这种办法安装后的优雅性体现为如下两点:

  1. 执行如下命令,即可自动卸载。

    brew uninstall openjdk@8
    
  2. 在安装了多版本jdk后,可以优雅地快速进行版本切换。

    以安装jdk8和jdk11为例

    ➜  ~ tree /Library/Java 
    /Library/Java
    ├── Extensions
    └── JavaVirtualMachines
        ├── openjdk-11.jdk -> /usr/local/opt/openjdk@11/libexec/openjdk.jdk
        └── openjdk-8.jdk -> /usr/local/opt/openjdk@8/libexec/openjdk.jdk
    
    4 directories, 0 files
    

    设置JAVA_HOME
    /usr/libexec/java_home可以指定JDK版本,如下:

    ➜  ~ /usr/libexec/java_home -v1.8
    /usr/local/Cellar/openjdk@8/1.8.0+282/libexec/openjdk.jdk/Contents/Home
    ➜  ~ /usr/libexec/java_home -v11
    /usr/local/Cellar/openjdk@11/11.0.9/libexec/openjdk.jdk/Contents/Home
    

    基于此特性可以采用如下策略:

    export JAVA_HOME=$(/usr/libexec/java_home -v11)
    export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
    export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
    
    alias java8='export JAVA_HOME=$JAVA_8_HOME'
    alias java11='export JAVA_HOME=$JAVA_11_HOME'
    

至此基于alias就可以实现一个Terminal实例下的JDK版本切换。

posted @   S!no  阅读(1310)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示