Mac 上配置jdk 環境變量

核心步驟是設置 JAVA_HOME 變量,并將其 bin 目錄添加到系統的 PATH 變量中。

macOS 從 Catalina (10.15) 版本開始,默認的終端 Shell 從 bash 切換到了 zsh。因此,你需要先確定你正在使用的 Shell,然后編輯對應的配置文件。


步驟一:查找 JDK 的安裝路徑

在 Mac 上,你不需要手動尋找 JDK 的路徑。系統提供了一個很方便的工具 /usr/libexec/java_home 來動態獲取當前最優的 JDK 路徑。

  1. 打開終端 (Terminal)
  2. 運行以下命令來獲取當前默認(通常是最高版本)的 JDK 主目錄路徑:
    /usr/libexec/java_home
    
    你會得到類似這樣的輸出,請復制它,下面會用到:
    /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
    

優點:使用這個命令而不是硬編碼一個具體路徑(如 .../jdk-17.jdk/...),意味著當你未來升級或安裝新的 JDK 時,這個環境變量配置無需修改,它會自動指向新的默認版本。


步驟二:確定你的 Shell 類型

在終端中輸入以下命令:

echo $SHELL
  • 如果輸出包含 /bin/zsh,那么你正在使用 Zsh
  • 如果輸出包含 /bin/bash,那么你正在使用 Bash

步驟三:編輯對應的 Shell 配置文件

根據上一步的結果,選擇相應的操作。

情況 A:如果你使用 Zsh (macOS Catalina 及更新版本)

你需要編輯 ~/.zshrc 文件。

  1. 打開或創建配置文件
    使用一個簡單的文本編輯器(如 nano)來編輯文件。

    nano ~/.zshrc
    

    如果文件是新建的,窗口會是空白的,這很正常。

  2. 添加環境變量配置
    將下面兩行代碼粘貼到文件的末尾。

    # Setting JAVA_HOME for JDK
    export JAVA_HOME=$(/usr/libexec/java_home)
    export PATH="$JAVA_HOME/bin:$PATH"
    
    • 第一行:設置 JAVA_HOME 變量,它的值是 java_home 命令的執行結果。
    • 第二行:將 JDK 的 bin 目錄(包含了 java, javac 等命令)添加到系統 PATH 的最前面,這樣系統會優先使用你指定的 JDK 版本。
  3. 保存并退出

    • 按下 Control + O (WriteOut)
    • Enter 鍵確認文件名。
    • 按下 Control + X 退出 nano 編輯器。
情況 B:如果你使用 Bash (macOS Mojave 及更早版本)

你需要編輯 ~/.bash_profile 文件。

  1. 打開或創建配置文件

    nano ~/.bash_profile
    
  2. 添加環境變量配置
    同樣,將下面兩行代碼粘貼到文件的末尾。

    # Setting JAVA_HOME for JDK
    export JAVA_HOME=$(/usr/libexec/java_home)
    export PATH="$JAVA_HOME/bin:$PATH"
    
  3. 保存并退出

    • 按下 Control + O
    • Enter
    • 按下 Control + X

步驟四:讓配置立即生效

你剛剛修改的配置文件只會在新的終端窗口中被加載。要讓你當前的終端窗口也應用這些更改,執行以下命令:

  • 如果你用的是 Zsh
    source ~/.zshrc
    
  • 如果你用的是 Bash
    source ~/.bash_profile
    

或者,你也可以直接關閉當前的終端窗口并重新打開一個,效果是一樣的。


步驟五:驗證配置是否成功

在新的終端窗口或 source 過的窗口中,運行以下命令進行檢查:

  1. 檢查 JAVA_HOME

    echo $JAVA_HOME
    

    預期輸出:應該會打印出你在第一步中看到的 JDK 路徑,例如 /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home

  2. 檢查 Java 版本

    java -version
    

    預期輸出:應該會顯示你默認 JDK 的版本信息。

  3. 檢查 java 命令的路徑

    which java
    

    預期輸出:應該會顯示 JAVA_HOME 路徑下的 bin/java,例如 /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/java

如果以上命令的輸出都符合預期,那么恭喜你,JDK 環境變量已經成功配置!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/91630.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/91630.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/91630.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

硬件-音頻學習DAY1——音箱材料選擇:密度板為何完勝實木

每日更新教程,評論區答疑解惑,小白也能變大神!" 目錄 一.音箱材料選擇的關鍵因素 二.密度板的聲學優勢 三.材料穩定性的對比 四.生產工藝的適應性 五.成本與環保的平衡 六.特殊場景的例外情況 七.消費者選購指南 八.行業發展趨勢…

微波(Microwave)與毫米波(Millimeter wave)簡介

一、電磁波頻段劃分,微波與毫米波所屬 二、微波 可以看出UHF及以上的頻段都可以統稱為微波。記得之前上微波技術實驗課的時候會接觸比巴掌還大的金屬波導,后來每次看到微波技術的時候都還是感到陌生。今天突然想到,不像在手機里就能完成的5G頻…

ObjectMapper教程

ObjectMapper 簡介ObjectMapper 是 Jackson 庫的核心類,用于 Java 對象與 JSON 數據之間的相互轉換。它支持序列化(對象轉 JSON)和反序列化(JSON 轉對象),廣泛應用于 REST API、數據存儲和配置處理等場景。…

【Node.js安裝注意事項】-安裝路徑不能有空格

問題描述:在項目中使用 nodemon時,出現了nodemon 啟動問題:nodemon : 無法將“nodemon”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。解決辦法:在網上找了很多教程,試了很多辦法,什么重新配置環境…

Shader開發(六)什么是著色器

在前面的章節中,我們簡要提到了著色器的概念,現在有了渲染管線的基礎知識,我們可以更深入地理解著色器的真正含義。著色器(Shader)是運行在圖形處理單元(GPU)上的專用程序,這與我們日…

操作系統-lecture4(進程的調度)

進程的切換 接下來需要了解兩個問題 誰觸發了進程切換進程切換的動作 中斷技術 中斷源 中斷處理過程(陷阱機制) 特權指令和非特權指令 Privileged Instructions:特權指令 ?The Instructions that can run only in Kernel Mode are called…

機器人程序優化

機器人程序優化核心摘要 本視頻詳細講解了機器人程序優化的方法與實踐,旨在提高程序的可讀性和復用性。通過學習文件夾、子程序調用以及路點優化等核心概念,觀眾將掌握如何將復雜的機器人搬運程序進行結構化整理,使其更易于理解、調試和在不…

一套視頻快速入門并精通PostgreSQL

PostgreSQL從入門到精通系列PostgreSQL數據庫是一個對理論知識與操作能力并重的技術,想要快速入門PostgreSQL數據庫,這兩個方面都要重視。這里的PostgreSQL從入門到精通,是專門針對剛入門的新手小白而錄制的一套,有理論講解也有動…

供應商管理系統有哪些功能?

在企業供應鏈數字化體系中,供應商管理系統是連接企業與外部合作伙伴的核心樞紐。以鯨采云采購管理系統的供應商模塊為例,其功能設計圍繞 “全生命周期管理 風險防控 協同效率” 三大核心,通過技術手段解決傳統供應商管理中的信息碎片化、流…

新手向:國內外大模型體驗與評測

國內外大模型體驗與評測技術詳解 近年來,人工智能領域的大模型技術取得了突破性進展,以GPT-4、Claude、文心一言等為代表的大語言模型(LLM)已經成為行業熱點。國內外科技巨頭紛紛布局這一賽道:國外有OpenAI的GPT系列、Anthropic的Claude、Google的PaLM,國內則有百度的文…

深度解讀 CSGHub:開源協議、核心功能與產品定位

在大模型時代,“可用”不再足夠,企業更需要“可管”、“可控”、“可演進”的一體化解決方案。作為國產開源陣營的中堅力量,CSGHub 如何從“開源與協議”到“功能定位”層層打磨,滿足不同行業對合規、安全和靈活部署的訴求&#x…

本土化DevOps實踐新篇章:Gitee引領企業高效協作新時代

本土化DevOps實踐新篇章:Gitee引領企業高效協作新時代 在數字化轉型的浪潮席卷全球的當下,軟件開發與運維的協同效率已經成為決定企業競爭力的關鍵因素。隨著國內企業對于數據安全和合規性的要求日益嚴格,尋找一套既符合本土監管要求又能提升…

B樹、B+樹、紅黑樹區別

一、核心概念與性質對比1. B樹(Balanced Tree)定位:多路平衡搜索樹,專為磁盤存儲優化核心性質:每個節點存儲 k-1個鍵值和k個子節點指針(m/2 ≤ k ≤ m,m為階數)所有葉子節點位于同一…

Spring AI 使用阿里百煉平臺實現流式對話:基于 SSE 的實踐

Spring AI阿里百煉平臺實現流式對話:基于 SSE 的實踐指南 在大模型應用開發中,流式對話是提升用戶體驗的關鍵特性。本文將詳細介紹如何利用 Spring AI 結合 Spring Boot,基于 SSE(Server-Sent Events)協議實現高效的流…

Ubuntu lamp

Ubuntu lamp 前言 在Ubuntu安裝lamp架構 我們了解到 lamp是完整的架構 我們前面了解到了 集合了Linux系統 apache MySQL 和PHP語言的完整架構 我們前面說了Centos7中編譯安裝 lamp 那么 我們去說一下在Ubuntu中安裝 ? ? 安裝apache2 ? apt直接安裝apache2 apt -y install a…

開源向量LLM - Qwen3-Embedding

1 Qwen3-Embedding介紹 Qwen3-Embedding遵循 Apache 2.0 許可證,模型大小從0.6B到8B,支持32k長文本編碼。 Model TypeModelsSizeLayersSequence LengthEmbedding DimensionMRL SupportInstruction AwareText EmbeddingQwen3-Embedding-0.6B0.6B2832K10…

云計算服務模式全解析:IaaS、PaaS、SaaS與DaaS的區別與應用

一、云計算概述 云計算是一種通過互聯網提供計算服務的模式,其核心特點是輸入/輸出與計算不在同一主機上。一個完整的云計算環境由云端(計算設備)、計算機網絡和終端(輸入/輸出設備)三部分組成,即"云…

qwen 多模態 預訓練流程步驟詳細介紹

Qwen(通義千問)是阿里云推出的大語言模型,其多模態預訓練是一個復雜且專業的過程,雖然官方沒有完全公開全部細節, 但從多模態大模型通用的預訓練邏輯上,一般包含以下主要步驟: 數據準備 多模態數…

FastDDS (SharedMemory)

SharedMemSegment Start // Fast-DDS/src/cpp/utils/shared_memory/SharedMemSegment.hppclass SharedSegmentBase {內部類 start class Id { public:typedef UUID<8> type;Id(); // 返回共享內存變量的IDId(const Id& other); // 設置共享內存變量的IDvoid g…

sqli-labs:Less-5關卡詳細解析

1. 思路&#x1f680; 本關的SQL語句為&#xff1a; $sql"SELECT * FROM users WHERE id$id LIMIT 0,1";注入類型&#xff1a;字符串型&#xff08;單引號包裹&#xff09;提示&#xff1a;參數id需以閉合 但有意思的是&#xff0c;php代碼的輸出語句不是如下這種…