当前位置: 首页 > article >正文

apple macbook M系列芯片安装 openJDK17

文章目录

    • 1. 查找openjdk版本
    • 2. 安装openjdk
    • 3. 多jdk之间的切换

在这里我们使用 brew 命令查找并安装。

1. 查找openjdk版本

执行:brew search openjdk,注意:执行命令后,如果得到的结果中没有红框内容,则需要更新一下 brew

更新 brew 分别执行以下命令:

cd "$(brew --repo)"
git fetch
git reset --hard origin/master
brew update: 执行时间较长,耐心等待
brew upgrade

等待更新结束,再次执行查找openjdk命令,此时应该显示图中内容。

2. 安装openjdk

执行安装命令:brew install openjdk@版本号
比如我这里想安装openJdk17,则执行:brew install openjdk@17

安装完毕后,输出如下信息表示安装成功:

For the system Java wrappers to find this JDK, symlink it with
  sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk

openjdk@17 is keg-only, which means it was not symlinked into /opt/homebrew,
because this is an alternate version of another formula.

If you need to have openjdk@17 first in your PATH, run:
  echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc

For compilers to find openjdk@17 you may need to set:
  export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"

接下来,根据提示,我们这里需要做两个操作

  1. 为了让 Java wrappers 找到 JDK,需要手动建立链接

    sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
    
  2. 配置环境变量
    因为之前安装有jdk1.8,所以需要在两个jdk之前切换,需要配置多环境变量:
    首先:找到 ~/.bash_profile~/.bashrc~/.zshrc 等配置文件中的 任意一个 (之前环境变量配置在哪个文件,就继续使用原有文件,我这里使用~/.bash_profile) ,添加下面这行代码:

    # 配置Java11的家目录
    export JAVA_17_HOME=$(/usr/libexec/java_home -v17)
    # 配置Java8的家目录
    export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
    # 配置别名,方便快速切换
    alias java8='export JAVA_HOME=$JAVA_8_HOME'
    # 配置别名,方便快速切换
    alias java17='export JAVA_HOME=$JAVA_17_HOME'
    
    export PATH=$JAVA_HOME/bin:$PATH:.
    # 默认是java8
    export JAVA_HOME=$JAVA_8_HOME
    

3. 多jdk之间的切换

经过我反复测试,切换时一定要加上&& source ~/.bash_profile
即:

  • 切换Java17:java17 && source ~/.bash_profile
  • 切换Java8:java8 && source ~/.bash_profile

http://www.kler.cn/a/146735.html

相关文章:

  • 语义分割(semantic segmentation)
  • Cyberchef使用功能之-多种压缩/解压缩操作对比
  • 小程序-基于java+SpringBoot+Vue的小区服务管理系统设计与实现
  • 如何解决多系统数据重复与冲突问题?
  • webpack配置
  • A037-基于Spring Boot的二手物品交易的设计与实现
  • github访问失败
  • Unsupervised MVS论文笔记(2019年)
  • Postgresql WAL日志解析挖掘(walminer 4.0)
  • Java LeetCode篇-深入了解关于数组的经典解法
  • 【nlp】4.1 fasttext工具介绍(文本分类、训练词向量、词向量迁移)
  • 为啥网络安全那么缺人,但很多人却找不到工作?
  • 2、用命令行编译Qt程序生成可执行文件exe
  • 为什么选择美国VPS服务器
  • Spring Security 6.1.x 系列(5)—— Servlet 认证体系结构介绍
  • 【新手解答2】深入探索 C 语言:一些常见概念的解析
  • Mysql 锁机制分析
  • Django框架环境的搭建(图文详解)
  • spring Cloud在代码中如何应用,erueka 客户端配置 和 服务端配置,Feign 和 Hystrix做高可用配置
  • IDEA DeBug
  • uniapp使用Vue3挂载函数到全局
  • 如何在gitlab上使用hooks
  • Android 相机库CameraView源码解析 (二) : 拍照
  • 深入理解MySQL索引及事务
  • python小数据分析小结及算法实践集锦
  • 后端接口返回二进制流音频数据,前端 js 如何播放?