在 macOS 上安装 jenv 管理 JDK 版本

在 macOS 上安装 jenv 并管理 JDK 版本

在开发 Java 应用程序时,你可能需要在不同的项目中使用不同版本的 JDK。手动切换 JDK 版本可能会很繁琐,但幸运的是,有一个工具可以简化这个过程:jenvjenv 是一个流行的 Java 版本管理工具,可以帮助你在不同的 JDK 版本之间轻松切换。本文将介绍如何在 macOS 上安装 jenv,添加 JDK 版本,并切换到所需的 JDK 版本。

安装 jenv

在 macOS 上安装 jenv 很简单。你可以通过 Homebrew 来安装,Homebrew 是 macOS 上的包管理器,可以方便地安装和管理各种软件。

  1. 安装 Homebrew(如果你还没有安装):
    打开终端,运行以下命令来安装 Homebrew:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. 安装 jenv
    安装完 Homebrew 后,你可以使用以下命令安装 jenv

    brew install jenv
    
  3. 配置 jenv
    安装完成后,需要将 jenv 初始化脚本添加到你的 shell 配置文件中。根据你使用的 shell 类型,编辑相应的配置文件:

    • 如果你使用的是 bash,编辑 ~/.bash_profile~/.bashrc 文件。
    • 如果你使用的是 zsh,编辑 ~/.zshrc 文件。

    使用文本编辑器(如 nanovim)打开配置文件,添加以下内容:

    export PATH="$HOME/.jenv/bin:$PATH"
    eval "$(jenv init -)"
    

    保存并关闭文件后,重新加载配置文件以使更改生效:

    source ~/.zshrc
    

添加 JDK 版本到 jenv

安装并配置好 jenv 后,你可以将已安装的 JDK 版本添加到 jenv 管理中。

  1. 找到 JDK 的安装路径
    通常,Homebrew 安装的 JDK 会位于 /opt/homebrew/Cellar/openjdk@<version> 目录下。例如,如果你安装了 JDK 17,路径可能是 /opt/homebrew/Cellar/openjdk@17/17.0.15

    你可以通过以下命令找到 JDK 的实际路径:

    ls -l /opt/homebrew/opt/openjdk@17
    

    如果输出如下:

    /opt/homebrew/opt/openjdk@17 -> ../Cellar/openjdk@17/17.0.15
    

    这表明 JDK 17 的实际路径是 /opt/homebrew/Cellar/openjdk@17/17.0.15

  2. 添加 JDK 到 jenv
    使用 jenv add 命令将 JDK 添加到 jenv 管理中。运行以下命令:

    jenv add /opt/homebrew/Cellar/openjdk@17/17.0.15
    

    如果你的 JDK 安装路径不同,请替换为实际路径。

  3. 验证添加的 JDK 版本
    添加完成后,你可以通过以下命令查看已添加的 JDK 版本:

    jenv versions
    

    输出应该包含你刚刚添加的 JDK 版本,例如:
    在这里插入图片描述

切换 JDK 版本

添加了所需的 JDK 版本后,你可以轻松地在它们之间切换。

  1. 设置全局 JDK 版本
    如果你想要设置某个 JDK 版本为全局默认版本,可以使用以下命令:

    jenv global 17.0.15
    

    这将设置 JDK 17.0.15 为全局默认版本。

  2. 设置局部 JDK 版本
    如果你想要为某个特定项目设置 JDK 版本,可以进入项目的目录,然后运行以下命令:

    jenv local 11.0.14
    

    这将设置 JDK 11.0.14 为当前项目的局部 JDK 版本。

  3. 查看当前使用的 JDK 版本
    你可以通过以下命令查看当前使用的 JDK 版本:

    java -version
    

    或者,使用 jenv 命令查看当前设置的全局 JDK 版本:

    jenv global
    

总结

通过使用 jenv,你可以在 macOS 上轻松管理多个 JDK 版本,并根据需要在它们之间切换。安装 jenv 后,你可以将已安装的 JDK 版本添加到 jenv 管理中,并通过简单的命令设置全局或局部的 JDK 版本。这使得在不同项目中使用不同版本的 JDK 变得非常方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/82559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年全国青少年信息素养大赛复赛C++集训(16):吃糖果2(题目及解析)

2025年全国青少年信息素养大赛复赛C集训&#xff08;16&#xff09;&#xff1a;吃糖果2&#xff08;题目及解析&#xff09; 题目描述 现有n(50 > n > 0)个糖果,每天只能吃2个或者3个&#xff0c;请计算共有多少种不同的吃法吃完糖果。 时间限制&#xff1a;1000 内存…

ARM笔记-嵌入式系统基础

第一章 嵌入式系统基础 1.1嵌入式系统简介 1.1.1嵌入式系统定义 嵌入式系统定义&#xff1a; 嵌入式系统是以应用为中心&#xff0c;以计算机技术为基础&#xff0c;软硬件可剪裁&#xff0c;对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统 ------Any devic…

大语言模型(LLM)入门项目推荐

推荐大语言模型(LLM)的入门项目 TiaoYu-1。 https://github.com/tiaoyu1122/TiaoYu-1 项目优点&#xff1a; 几乎每一行代码(一些重复的代码除外)都添加了注释&#xff0c;详细介绍了代码的作用&#xff0c;方便阅读与理解。基本上覆盖了常见 LLM 模型的全部训练流程&#x…

Linux里more 和 less的区别

在 Linux/Unix 系统中&#xff0c;more 和 less 都是用于分页查看文本文件的命令&#xff0c;但 less 是 more 的增强版&#xff0c;功能更强大。以下是它们的核心区别和用法对比&#xff1a; 1. 基础功能对比 特性moreless&#xff08;更强大&#xff09;向前翻页❌ 仅支持向…

基于PDF流式渲染的Word文档在线预览技术

一、背景介绍 在系统开发中&#xff0c;实现在线文档预览与编辑功能是许多项目的核心需求&#xff0c;但在实际的开发过程中&#xff0c;我们经常会面临以下难点&#xff1a; 1&#xff09;格式兼容性问题&#xff1a;浏览器原生不支持解析Word二进制格式&#xff0c;直接渲染会…

ai学习--python部分-1.变量名及命名空间的存储

初学代码时总有一个问题困扰我&#xff1a;a 10 # a指向地址0x1234&#xff08;存储10&#xff09; 变量a的值10存储在0x1234&#xff0c;那么变量a需要存储吗&#xff1f;a又存储在什么地址呢 目录 1. ​​命名空间的本质​​ 2. ​​命名空间的内存占用​​ 3. ​​…

Leetcode 3563. Lexicographically Smallest String After Adjacent Removals

Leetcode 3563. Lexicographically Smallest String After Adjacent Removals 1. 解题思路2. 代码实现 题目链接&#xff1a;3563. Lexicographically Smallest String After Adjacent Removals 1. 解题思路 这次的最后一题同样没有自力搞定&#xff0c;简直了…… 这道题还…

微信小程序之Promise-Promise初始用

我们来尝试使用Promise。 1、需求&#xff0c;做个抽奖的按钮&#xff0c; 抽奖规则&#xff1a; 30%的几率中奖&#xff0c;中奖会提示恭喜恭喜&#xff0c;奖品为10万 RMB 劳斯莱斯优惠券&#xff0c;没中奖会提示再接再厉。 2、先搭界面&#xff1a; <view class&qu…

spring-boot-starter-data-redis应用详解

一、依赖引入与基础配置 添加依赖 在 pom.xml 中引入 Spring Data Redis 的 Starter 依赖&#xff0c;默认使用 Lettuce 客户端&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis<…

全能邮箱全能邮箱:实现邮件管理的自动化!

全能邮箱全能邮箱&#xff1a;实现邮件管理的自动化&#xff01; 全能邮箱全能邮箱的配置教程&#xff1f;如何注册烽火域名邮箱&#xff1f; 全能邮箱全能邮箱作为一种创新的邮件管理解决方案&#xff0c;正逐渐改变我们处理邮件的方式。蜂邮EDM将围绕全能邮箱全能邮箱&…

Real2Render2Real:无需动力学仿真或机器人硬件即可扩展机器人数据

25年5月来自UC Berkeley 和 TRI 的论文“Real2Render2Real: Scaling Robot Data Without Dynamics Simulation or Robot Hardware”。 扩展机器人学习需要大量且多样化的数据集。然而&#xff0c;现行的数据收集范式——人类遥操作——仍然成本高昂&#xff0c;且受到手动操作…

Cadence学习笔记之---PCB的布线与铺铜

目录 01 | 引 言 02 | 环境描述 03 | 布 线 04 | 铺 铜 05 | 总 结 01 | 引 言 在上一篇文章中介绍了Cadence元件放置和布局相关的操作方法和步骤&#xff0c;当完成全部的器件布局后&#xff0c;就可以进行下一步&#xff1b; 本篇文章主要介绍Cadence中布线和铺铜相关的…

redis-7.4.2 通过 systemd管理,rpmbuild spec文件参考

redis-7 和 redis 5 版本在配置为systemd 方式管理时&#xff0c;配置关于有些许区别&#xff0c;否则会报systemctl status redis 如下错误&#xff1a; redis.service: control process exited, codeexited status1 Failed to start Redis persistent key-value database. Un…

2025-05-26 什么是“AI 全栈”

AI全栈&#xff1a;模型 表示学习 向量库 API UI 一句话定义&#xff1a; ​ AI 全栈开发&#xff0c;是指开发者从原始文本/语音/图像开始&#xff0c;结合大模型能力&#xff0c;构建完整应用闭环的技术能力栈。 AI全栈应用的过程 AI应用 ≠ 一个GPT接口&#xff0c;…

康师傅的“价值战”答卷:一碗面的创新与担当

低价策略、口味雷同、营销跟风……方便面行业曾长期陷于同质化竞争的泥潭&#xff0c;不过近年来&#xff0c;行业竞争逻辑已悄然改变。 一方面来源于宏观环境的变化&#xff0c;想要在缩量市场下保住大盘&#xff0c;一定要保持逆向思维的能力&#xff0c;另一方面&#xff0…

高性能管线式HTTP请求

高性能管线式HTTP请求:原理、实现与实践 目录 高性能管线式HTTP请求:原理、实现与实践 1. HTTP管线化的原理与优势 1.1 HTTP管线化的基本概念 关键特性: 1.2 管线化的优势 1.3 管线化的挑战 2. 高性能管线式HTTP请求的实现方案 2.1 技术选型与工具 2.2 Java实现:…

传输线上的信号速度与阻抗无关,主要由频率决定

阻抗与传播速度无关 通过计算我们可以知道&#xff0c;导体流过电流时&#xff0c;电子实际上的速度只有1cm/s。是很慢的。 导线的电阻对传输线上信号的传播速度几乎没有任何影响。只在一些极端的情况下&#xff0c;互连的电阻才会影响信号的传播速度&#xff0c;并且这个影响…

YOLOv1 详解:单阶段目标检测算法的里程碑

在目标检测领域&#xff0c;YOLO&#xff08;You Only Look Once&#xff09;系列算法凭借其高效性和实用性&#xff0c;成为了行业内的明星算法。其中&#xff0c;YOLOv1 作为 YOLO 系列的开山之作&#xff0c;首次提出了单阶段目标检测的思想&#xff0c;彻底改变了目标检测算…

免费开源 PDF 阅读器 自带虚拟打印机功能 多格式兼容

各位办公小能手们&#xff0c;今天咱来聊聊一款超厉害的PDF工具——PDFLite&#xff01; 这PDFLite啊&#xff0c;那可是轻量级、免费又开源的好东西。它能干啥呢&#xff1f;主要就是能读PDF文件&#xff0c;还能转换文件格式&#xff0c;做基础的文档管理。下面咱就说说它的…

Mac Python 安装依赖出错 error: externally-managed-environment

Mac Python 使用 ip3 install -r requirements.txt 出错 This environment is externally managed ╰─> To install Python packages system-wide, try brew installxyz, where xyz is the package you are trying toinstall.If you wish to install a Python library th…