欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MacOS如何安裝配置多個JDK并切換使用詳解

 更新時間:2025年02月24日 08:35:44   作者:程序員哈欠  
這篇文章主要介紹了如何在MacOS上安裝和配置多個JDK版本,通過配置環(huán)境變量來實現(xiàn),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

由于JDK版本極快的更新速度,因此常常會出現(xiàn)不同項目需要的JDK不同情況,所以需要明白如何在操作系統(tǒng)安裝配置多個JDK,本篇博客以MacOS舉例。

提示:如果是M系列芯片,推薦下載arm版本

概述

安裝配置多個JDK一共三步:

實現(xiàn)多個JDK的關(guān)鍵是如何配置環(huán)境變量,是本文的重點,因此第一二步略過

配置環(huán)境變量

JDK下載與安裝的區(qū)別

下載 JDK:

  • 過程: 這涉及從 Oracle 官方網(wǎng)站、OpenJDK 社區(qū),或者其他提供商下載 JDK 的二進(jìn)制分發(fā)包。這通常是一個 .dmg (Disk Image)、.tar.gz、或者像 .pkg 這樣的安裝包。
  • 本質(zhì): 下載只是將安裝文件從網(wǎng)絡(luò)傳輸?shù)侥愕谋镜赜嬎銠C(jī),這一步只是在你的硬盤上存儲了安裝文件,并未進(jìn)行任何系統(tǒng)級的修改。

安裝 JDK:

  • 過程: 這一步包括運(yùn)行實際下載的安裝程序或按照下載 README 的指示進(jìn)行解壓和配置。安裝過程通常會復(fù)制 JDK 文件到系統(tǒng)的特定目錄(例如 /Library/Java/JavaVirtualMachines),以及更新相關(guān)的系統(tǒng)環(huán)境配置。
  • 本質(zhì): 安裝步驟會把 JDK 添加到計算機(jī)的路徑中,使其成為全局可用。它通常會在系統(tǒng)中注冊這個 JDK,使得 Java 命令(例如 javajavac)可以在終端中全局訪問。

簡而言之:下載只是壓縮包,安裝包括解壓與配置

了解配置項

先給大家看看配置項

#JAVA
JAVA_HOME_17=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
JAVA_HOME_8=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home

export JAVA_HOME=$JAVA_HOME_8

PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

export PATH
export CLASSPATH

用編程的思維大致理解要做的事

  • 定義變量
  • 操作變量
  • return變量

JAVA_HOME_17 and JAVA_HOME_8

這些行分別定義了兩個環(huán)境變量 JAVA_HOME_17 和 JAVA_HOME_8,用于存儲 Java 17 和 Java 8 安裝的路徑。

  • JAVA_HOME_17 設(shè)置為 Java 17 的路徑:/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
  • JAVA_HOME_8 設(shè)置為 Java 8 的路徑:/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home。

export JAVA_HOME=$JAVA_HOME_8

這行命令將 JAVA_HOME 環(huán)境變量設(shè)置為 JAVA_HOME_8 的值,指定將使用 Java 8 作為默認(rèn)的 Java 環(huán)境。這里是切換JDK的重點

  • export 命令用于將環(huán)境變量暴露給終端中運(yùn)行的所有子進(jìn)程,確保在終端中運(yùn)行的 Java 程序使用這個 JDK。

PATH=$JAVA_HOME/bin:$PATH

這行代碼重新設(shè)置了 PATH 環(huán)境變量的值。讓我們逐個部分地解釋:

  • PATH=

    • PATH 是一個環(huán)境變量,存儲了一系列目錄的路徑,系統(tǒng)會依次在這些目錄中查找可執(zhí)行文件。當(dāng)你在終端中輸入一個命令時,shell 根據(jù)這些路徑來尋找并執(zhí)行對應(yīng)的程序。
    • = 用于給變量賦值。在這行代碼中,我們更新了 PATH 變量的值。
  • $JAVA_HOME/bin

    • $JAVA_HOME 是一個變量,存儲了當(dāng)前 Java 安裝目錄的路徑。在這段代碼中,它被設(shè)置為 JAVA_HOME_8,指向 Java 8 的安裝路徑。
    • /bin 是一個相對路徑,表示我們要訪問 JAVA_HOME 目錄下的 bin 子目錄,該目錄包含了所有與 Java 相關(guān)的可執(zhí)行文件,例如 java 和 javac。
    • 當(dāng) JAVA_HOME 被正確設(shè)置時,$JAVA_HOME/bin 的實際值可能為 /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home/bin。
  • :$PATH

    • : 是路徑分隔符。在 UNIX 和類 UNIX 系統(tǒng)中,環(huán)境變量 PATH 中的各個路徑是用冒號分隔的。
    • $PATH 表示當(dāng)前 PATH 變量的值。
    • :$PATH 表示我們要把當(dāng)前的 PATH 內(nèi)容追加到新的 PATH 變量值之后。

總結(jié)一下,這行代碼的作用是:

  • 將 Java 安裝目錄下的 bin 文件夾添加到 PATH 的開頭。這樣能確保運(yùn)行 java、javac 等命令時,優(yōu)先使用當(dāng)前配置的 JDK。
  • 保留先前的 PATH 內(nèi)容,確保系統(tǒng)的其他命令仍然可以被正常調(diào)用。

CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

CLASSPATH 用于定義 Java 在運(yùn)行時和編譯時搜索類文件的路徑。

  • tools.jar 和 dt.jar 是 JDK 中的庫,tools.jar 包含用于編譯和運(yùn)行 Java 應(yīng)用程序的工具,而 dt.jar 通常和圖形界面構(gòu)建有關(guān)。

export PATH 和 export CLASSPATH

  • 類似于 export JAVA_HOME, 這些 export 命令將已設(shè)置的 PATH 和 CLASSPATH 環(huán)境變量對終端中運(yùn)行的所有子進(jìn)程可用。
  • 確保命令行程序和 Java 程序可以使用這些變量中配置的路徑和庫。

編寫配置項

1.在終端中,打開.zshrc文件

open .zshrc

2.將剛才的配置項粘貼到文件中

3.在終端中,使.zshrc文件生效

source ~/.zshrc

切換JDK

在終端中,查看一下我們的JDK版本

java -version

1.在終端中,打開.zshrc文件

open .zshrc

2.修改JAVA_HOME的值

export JAVA_HOME=$JAVA_HOME_17

3.在終端中,使.zshrc文件生效

source ~/.zshrc

再查看一次,發(fā)現(xiàn)已經(jīng)切換成功了

總結(jié) 

到此這篇關(guān)于MacOS如何安裝配置多個JDK并切換使用的文章就介紹到這了,更多相關(guān)MacOS安裝配置多個JDK切換使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用jvm sandbox對三層嵌套類型的改造示例

    使用jvm sandbox對三層嵌套類型的改造示例

    這篇文章主要為大家介紹了使用jvm sandbox對三層嵌套類型的改造示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • java多線程詳細(xì)總結(jié)

    java多線程詳細(xì)總結(jié)

    以下小編就對java中的多線程進(jìn)行了詳細(xì)的總結(jié)分析,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • java中for和forEach的速度比較實例Demo

    java中for和forEach的速度比較實例Demo

    for循環(huán)中的循環(huán)條件中的變量只求一次值,而foreach語句是java5新增,在遍歷數(shù)組、集合的時候,foreach擁有不錯的性能,這篇文章主要給大家介紹了關(guān)于java中for和forEach速度比較的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 三步輕松搭建springMVC框架

    三步輕松搭建springMVC框架

    這篇文章主要教大家三步輕松搭建springMVC框架,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 解讀Eureka的TimedSupervisorTask類(自動調(diào)節(jié)間隔的周期性任務(wù))

    解讀Eureka的TimedSupervisorTask類(自動調(diào)節(jié)間隔的周期性任務(wù))

    在Eureka客戶端中,盡管ScheduledExecutorService的schedule方法創(chuàng)建的是一次性任務(wù),但通過在任務(wù)執(zhí)行完畢后再次調(diào)用schedule方法實現(xiàn)了周期性執(zhí)行,這種設(shè)計既考慮到了任務(wù)超時導(dǎo)致的間隔時間調(diào)整,又通過CAS實現(xiàn)了多線程同步,展現(xiàn)了簡潔而巧妙的設(shè)計思想
    2024-11-11
  • IDEA?database和datagrip無法下載驅(qū)動問題解決辦法

    IDEA?database和datagrip無法下載驅(qū)動問題解決辦法

    這篇文章主要給大家介紹了關(guān)于IDEA?database和datagrip無法下載驅(qū)動問題的解決辦法,文中通過代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用idea具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-03-03
  • mybatis-plus內(nèi)置雪花算法主鍵重復(fù)問題解決

    mybatis-plus內(nèi)置雪花算法主鍵重復(fù)問題解決

    本文主要介紹了mybatis-plus內(nèi)置雪花算法主鍵重復(fù)問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Java中Stream流中map和forEach的區(qū)別詳解

    Java中Stream流中map和forEach的區(qū)別詳解

    本文主要介紹了Java中Stream流中map和forEach的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Java在指定路徑上創(chuàng)建文件提示不存在解決方法

    Java在指定路徑上創(chuàng)建文件提示不存在解決方法

    在本篇文章里小編給大家整理的是一篇關(guān)于Java在指定路徑上創(chuàng)建文件提示不存在解決方法,有需要的朋友們可以參考下。
    2020-02-02
  • HashMap和List遍歷方法及如何遍歷刪除元素總結(jié)

    HashMap和List遍歷方法及如何遍歷刪除元素總結(jié)

    在本篇文章中小編給大家分享了關(guān)于HashMap和List遍歷方法及如何遍歷刪除元素知識點總結(jié),需要的朋友們參考下。
    2019-05-05

最新評論