在 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
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82559.shtml
英文地址,請注明出處:http://en.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…