Mac環(huán)境下JDK版本切換的詳細(xì)指南
概要
在 macOS 上安裝了多個(gè) JDK 后,可以通過系統(tǒng)自帶的 /usr/libexec/java_home 工具來查詢并切換不同版本的 Java。只需在終端中執(zhí)行 /usr/libexec/java_home -V 列出所有已安裝的 JDK,然后將你想使用的版本路徑賦值給環(huán)境變量 JAVA_HOME,并將其添加到 PATH。最后,將這些設(shè)置寫入你的 shell 啟動(dòng)文件(如 ~/.zshrc 或 ~/.bash_profile),即可在每次新開終端時(shí)自動(dòng)生效。
一、查詢已安裝的 JDK 版本
打開 終端,輸入:
/usr/libexec/java_home -V
該命令會輸出所有已安裝的 Java 虛擬機(jī)列表及其安裝路徑,例如:
Matching Java Virtual Machines (3):
17.0.2 (x86_64) "Oracle Corporation" - "Java SE 17.0.2" /Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home
1.8.0_202 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
上面是一個(gè)示例,像我的電腦上裝的jdk就有點(diǎn)亂了

二、臨時(shí)切換 JDK 版本
如果僅想在當(dāng)前終端會話中切換版本,可直接運(yùn)行:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) export PATH="$JAVA_HOME/bin:$PATH"
-v 1.8可替換為你需要的版本號(如-v 17、-v 11.0.2等)([Stack Overflow][2])- 切換后,執(zhí)行
java -version即可驗(yàn)證當(dāng)前使用的 Java 版本
三、永久切換 JDK 版本
為了在每次打開終端時(shí)都自動(dòng)使用同一版本,需要將上述環(huán)境變量配置寫入 shell 啟動(dòng)文件。
1. 確定使用的 Shell
- macOS 默認(rèn)從 macOS Catalina 起采用 Zsh,啟動(dòng)文件為
~/.zshrc。 - 如果你使用的是 Bash,則應(yīng)編輯
~/.bash_profile或~/.bashrc。
2. 編輯啟動(dòng)文件
以 Zsh 為例,打開或創(chuàng)建 ~/.zshrc:
vim ~/.zshrc
或者
nano ~/.zshrc
在文件末尾添加:
# 指向 Java 17(示例)像我的電腦上jdk裝的有點(diǎn)亂了,可以指定特定的版本比如17.0.15 export JAVA_HOME=$(/usr/libexec/java_home -v 17.0.15) export PATH="$JAVA_HOME/bin:$PATH"
保存并退出(Ctrl+X → Y → Enter/獲取:wq保存(vim的操作))
3. 使配置生效
source ~/.zshrc java -version

此時(shí)終端應(yīng)顯示你指定的 Java 版本信息。
四、使用別名或腳本快速切換(可選)
如果經(jīng)常在不同項(xiàng)目間切換 JDK,可以在啟動(dòng)文件中定義別名或函數(shù),例如:
# ~/.zshrc 中 alias java8='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8); export PATH="$JAVA_HOME/bin:$PATH"; java -version' alias java17='export JAVA_HOME=$(/usr/libexec/java_home -v 17); export PATH="$JAVA_HOME/bin:$PATH"; java -version'
這樣在終端中僅需執(zhí)行 java8 或 java17 即可快速切換版本。
五、可以嘗試:使用 SDKMAN!
sdkman能讓你在 Unix 系統(tǒng)上輕松管理多個(gè)軟件開發(fā)工具包,像 apt、pip、RVM 和 rbenv一樣工具
也可以理解為node的版本管理的工具nvm一樣的工具軟件
SDKMAN! 是一個(gè)管理多種 SDK(包括 Java)版本的工具。安裝后可用一條命令列出并切換 JDK:
sdk list java sdk use java 17.0.2-tem
這種方式在管理眾多 Java 發(fā)行版(Oracle、Temurin、Amazon Corretto 等)時(shí)尤為方便。
到此這篇關(guān)于Mac環(huán)境下JDK版本切換的詳細(xì)指南的文章就介紹到這了,更多相關(guān)Mac環(huán)境JDK版本切換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
idea2019版Plugins中搜索不到任何插件的問題解決
本文主要介紹了idea2019版Plugins中搜索不到任何插件的問題解決,插件搜不出來的主要原因是plugins.jetbrains.com ping不通,下面就來介紹一下解決方法,感興趣的可以了解一下2023-09-09
使用Fastjson進(jìn)行JSON生成與解析的新手指南
Fastjson是阿里巴巴開源的高性能 JSON 庫,適用于 Java 對象的序列化和反序列化,本文將詳細(xì)介紹一下如何使用Fastjson進(jìn)行json的生成與解析吧2025-04-04
Java實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)MNIST手寫數(shù)字識別的示例詳解
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)MNIST手寫數(shù)字識別的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-01-01
SpringBoot應(yīng)用中出現(xiàn)的Full GC問題的場景與解決
這篇文章主要為大家詳細(xì)介紹了SpringBoot應(yīng)用中出現(xiàn)的Full GC問題的場景與解決方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-04-04
Java字符串拼接的五種方法及性能比較分析(從執(zhí)行100次到90萬次)
字符串拼接一般使用“+”,但是“+”不能滿足大批量數(shù)據(jù)的處理,Java中有以下五種方法處理字符串拼接及性能比較分析,感興趣的可以了解一下2021-12-12
SpringBoot深入講解單元測試與熱部署應(yīng)用
這篇文章介紹了SpringBoot單元測試與熱部署,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
Java虛擬機(jī)常見內(nèi)存溢出錯(cuò)誤匯總
這篇文章主要匯總了Java虛擬機(jī)常見的內(nèi)存溢出錯(cuò)誤,警示大家,避免出錯(cuò),感興趣的朋友可以了解下2020-09-09
Spring Data JPA進(jìn)行數(shù)據(jù)分頁與排序的方法
這篇文章主要介紹了Spring Data JPA進(jìn)行數(shù)據(jù)分頁與排序的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
詳解IntelliJ IDEA創(chuàng)建spark項(xiàng)目的兩種方式
這篇文章主要介紹了詳解IntelliJ IDEA創(chuàng)建spark項(xiàng)目的兩種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01

