最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

各系統(tǒng)下多版本JDK安裝與配置步驟

 更新時(shí)間:2026年02月26日 08:39:01   作者:FearlessVoyager  
這篇文章主要介紹了各系統(tǒng)下多版本JDK安裝與配置的相關(guān)資料,包括Windows、Mac和Linux系統(tǒng)下的具體步驟,文中通過代碼將步驟介紹的非常詳細(xì),需要的朋友可以參考下

一、概述

當(dāng)不同項(xiàng)目可能需要不同Java版本,這時(shí)我們需要在同一臺(tái)機(jī)器上安裝多個(gè)版本的JDK,并能夠方便地切換。主要通過以下步驟實(shí)現(xiàn):

  1. 下載JDK:從Oracle官網(wǎng)或OpenJDK網(wǎng)站下載所需的JDK版本。
  2. 安裝JDK:可以將不同版本的JDK安裝到不同的目錄。例如,將JDK 8安裝在/usr/lib/jvm/jdk-8,將JDK 11安裝在/usr/lib/jvm/jdk-11。
  3. 配置環(huán)境變量:為不同版本的jdk創(chuàng)建對應(yīng)的JAVA_HOME,再創(chuàng)建一個(gè)通用的JAVA_HOME。
  4. 切換JDK版本:將需要應(yīng)用的jdk版本的JAVA_HOME賦值給這個(gè)通用的JAVA_HOME。
  5. 驗(yàn)證版本:使用java -version命令驗(yàn)證當(dāng)前使用的JDK版本。

二、Windows 環(huán)境多個(gè)JDK安裝與切換

2.1 下載jdk

去Oracle官網(wǎng)上下載想要安裝的jdk版本,https://www.oracle.com/java/technologies/downloads/。

2.2 安裝jdk

雙擊.exe文件,選擇好安裝目錄進(jìn)行安裝。多個(gè)版本的jdk重復(fù)這兩步操作就好。

2.3 配置環(huán)境變量

  1. 首先找到j(luò)dk安裝的目錄。

  2. 在環(huán)境變量中新增不同jdk版本的JAVA_HOME。

  3. 創(chuàng)建一個(gè)通用的JAVA_HOME,將需要使用的jdk版本的JAVA_HOME賦值給這個(gè)通用的JAVA_HOME。

  4. 配置Path環(huán)境變量,編輯Path變量,在后面添加兩條變量。如果之前配置過其他的jdk的path變量的話,就先把之前的配置刪除,重新添加下面兩條。并且這兩條需要移動(dòng)到最前面,不然后續(xù)無法切換jdk版本。%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

  5. 配置CLASSPATH環(huán)境變量,編輯CLASSPATH變量,在后面添加下面的配置,如果之前有配置過,也先刪除再重新配置。.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

2.4 切換JDK版本

編輯通用的JAVA_HOME變量的值,將需要應(yīng)用的jdk的JAVA_HOME值賦值給通用的JAVA_HOME變量。

2.5 驗(yàn)證版本

使用以下命令進(jìn)行驗(yàn)證當(dāng)前jdk版本信息:

# 檢查當(dāng)前Java版本
java -version

# 檢查Javac版本
javac -version

三、Mac 環(huán)境多JDK安裝與切換

3.1 下載jdk

去Oracle官網(wǎng)上下載想要安裝的jdk版本,M芯片選擇arm架構(gòu)的.bmg格式的文件。
https://www.oracle.com/java/technologies/downloads/

3.2 安裝jdk

雙擊下載的文件,安裝步驟一步步點(diǎn)繼續(xù)就好。

3.3 配置環(huán)境變量

  1. 安裝完成后會(huì)在/Library/Java/JavaVirtualMachines目錄下看到安裝的jdk信息。

  2. 打開終端,進(jìn)入到/root目錄下,通過open .bash_profile命令打開并編輯.bash_profile文件,如果不存在這個(gè)文件就創(chuàng)建一個(gè)這個(gè)名字的文件。

    export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
    export JAVA_21_HOME=/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH:.
    
    alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
    alias jdk21='export JAVA_HOME=$JAVA_21_HOME'
    

  3. 編輯完成之后,執(zhí)行source .bash_profile 讓配置文件生效。再使用java -version命令查看jdk版本信息。

3.4 切換JDK版本

可以根據(jù)上面配置的版本別名進(jìn)行切換。

3.5 驗(yàn)證版本

使用以下命令進(jìn)行驗(yàn)證當(dāng)前jdk版本信息:

# 檢查當(dāng)前Java版本
java -version

# 檢查Javac版本
javac -version

四、Linux 環(huán)境多JDK安裝與切換

4.1 下載jdk

  1. 創(chuàng)建統(tǒng)一的安裝目錄

    # 創(chuàng)建 JDK 安裝目錄
    sudo mkdir -p /usr/local/src/jdks
    sudo chmod 755 /usr/local/src/jdks
    
  2. 下載 JDK

    # 方式1:從官網(wǎng)下載(需要賬戶)
    # 訪問 https://www.oracle.com/java/technologies/downloads/
    # 或 https://adoptium.net/
    
    # 方式2:使用 wget 下載 OpenJDK(示例)
    cd /tmp
    
    # OpenJDK 8
    wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
    
    # OpenJDK 11
    wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
    
    # OpenJDK 17
    wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
    
    # OpenJDK 21
    wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz
    

4.2 安裝jdk

# 解壓到 /usr/local/src/jdks 目錄
sudo tar -xzf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz -C /usr/local/src/jdks/
sudo tar -xzf openjdk-11.0.2_linux-x64_bin.tar.gz -C /usr/local/src/jdks/
sudo tar -xzf openjdk-17.0.2_linux-x64_bin.tar.gz -C /usr/local/src/jdks/
sudo tar -xzf openjdk-21.0.2_linux-x64_bin.tar.gz -C /usr/local/src/jdks/

# 重命名為簡潔的名稱(可選)
cd /usr/local/src/jdks
sudo mv java-se-8u41-ri jdk-8
sudo mv jdk-11.* jdk-11
sudo mv jdk-17.* jdk-17
sudo mv jdk-21.* jdk-21

# 設(shè)置權(quán)限
sudo chmod -R 755 /usr/local/src/jdks/jdk-*
sudo chown -R root:root /usr/local/src/jdks/jdk-*

4.3 驗(yàn)證安裝

# 檢查每個(gè) JDK 版本
/usr/local/src/jdks/jdk-8/bin/java -version
/usr/local/src/jdks/jdk-11/bin/java -version
/usr/local/src/jdks/jdk-17/bin/java -version
/usr/local/src/jdks/jdk-21/bin/java -version

4.4 配置 JDK 切換

4.4.1 使用環(huán)境變量(按需切換)

創(chuàng)建切換腳本

# 1.創(chuàng)建切換腳本目錄
mkdir -p ~/bin/jdk_switcher

# 2.創(chuàng)建腳本
cat > ~/bin/jdk_switcher/jdk-switch.sh << 'EOF'
#!/bin/bash

# JDK 切換腳本

JDK_BASE_DIR="/usr/local/src/jdks"
CURRENT_JDK_FILE="$HOME/.current_jdk"

show_usage() {
    echo "使用方法: $0 [版本號(hào)]"
    echo "可用版本:"
    ls -1 "$JDK_BASE_DIR" | grep -E "^jdk-|^java-" | sed 's/^/  /'
    echo ""
    echo "示例:"
    echo "  $0 8        # 切換到 JDK 8"
    echo "  $0 11       # 切換到 JDK 11"
    echo "  $0 17       # 切換到 JDK 17"
    echo "  $0 current  # 顯示當(dāng)前版本"
}

get_jdk_path() {
    local version=$1
    local jdk_path
    
    # 嘗試匹配 jdk-版本號(hào)
    jdk_path=$(ls -d "$JDK_BASE_DIR"/jdk-$version* 2>/dev/null | head -1)
    
    # 如果沒找到,嘗試匹配 java-版本號(hào)
    if [ -z "$jdk_path" ]; then
        jdk_path=$(ls -d "$JDK_BASE_DIR"/java-$version* 2>/dev/null | head -1)
    fi
    
    echo "$jdk_path"
}

set_jdk() {
    local version=$1
    local jdk_path=$(get_jdk_path "$version")
    
    if [ -z "$jdk_path" ]; then
        echo "錯(cuò)誤: 未找到 JDK $version"
        return 1
    fi
    
    if [ ! -d "$jdk_path" ]; then
        echo "錯(cuò)誤: JDK 路徑不存在: $jdk_path"
        return 1
    fi
    
    # 設(shè)置環(huán)境變量
    export JAVA_HOME="$jdk_path"
    export PATH="$JAVA_HOME/bin:$PATH"
    
    # 保存當(dāng)前選擇
    echo "$jdk_path" > "$CURRENT_JDK_FILE"
    
    echo "已切換到: $jdk_path"
    java -version
}

show_current() {
    if [ -f "$CURRENT_JDK_FILE" ]; then
        current_jdk=$(cat "$CURRENT_JDK_FILE")
        echo "當(dāng)前 JDK: $current_jdk"
        $current_jdk/bin/java -version
    else
        echo "未設(shè)置 JDK"
        java -version 2>/dev/null || echo "Java 未安裝或未在 PATH 中"
    fi
}

# 主邏輯
main() {
    if [ $# -eq 0 ]; then
        show_usage
        return 1
    fi
    
    case "$1" in
        "current")
            show_current
            ;;
        "list")
            echo "已安裝的 JDK 版本:"
            ls -1 "$JDK_BASE_DIR" | grep -E "^jdk-|^java-" | sed 's/^/  /'
            ;;
        "help"|"-h"|"--help")
            show_usage
            ;;
        *)
            set_jdk "$1"
            ;;
    esac
}

main "$@"
EOF

# 3.設(shè)置執(zhí)行權(quán)限
chmod +x ~/bin/jdk_switcher/jdk-switch.sh

# 4.創(chuàng)建符號(hào)鏈接
ln -sf ~/bin/jdk_switcher/jdk-switch.sh ~/bin/jdk-switch

# 5.添加到 .bashrc 或 .zshrc
echo 'alias java-switch="~/bin/jdk-switch"' >> ~/.bashrc
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

4.4.2 使用切換腳本

# 列出所有 JDK
jdk-switch list

# 切換到 JDK 8
jdk-switch 8

# 切換到 JDK 11
jdk-switch 11

# 查看當(dāng)前版本
jdk-switch current

# 顯示幫助
jdk-switch help

總結(jié) 

到此這篇關(guān)于各系統(tǒng)下多版本JDK安裝與配置步驟的文章就介紹到這了,更多相關(guān)多版本JDK安裝與配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot整合Atomikos的示例詳解

    springboot整合Atomikos的示例詳解

    這篇文章主要為大家詳細(xì)介紹了幾種分布式事務(wù)的解決方案的兩階段提交Atomikos,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2024-11-11
  • java后端調(diào)用第三方接口返回圖片流給前端的具體代碼實(shí)現(xiàn)

    java后端調(diào)用第三方接口返回圖片流給前端的具體代碼實(shí)現(xiàn)

    在前后端分離的開發(fā)中,經(jīng)常會(huì)遇到需要從后端返回圖片流給前端的情況,下面這篇文章主要給大家介紹了關(guān)于java后端調(diào)用第三方接口返回圖片流給前端的具體代碼實(shí)現(xiàn),需要的朋友可以參考下
    2024-02-02
  • SpringMVC結(jié)合ajaxfileupload實(shí)現(xiàn)文件無刷新上傳代碼

    SpringMVC結(jié)合ajaxfileupload實(shí)現(xiàn)文件無刷新上傳代碼

    本篇文章主要介紹了SpringMVC結(jié)合ajaxfileupload實(shí)現(xiàn)文件無刷新上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • Java操作集合工具類Collections使用詳解

    Java操作集合工具類Collections使用詳解

    這篇文章主要介紹了java操作集合工具類Collections使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 四個(gè)Java必須知道的負(fù)載均衡算法分享

    四個(gè)Java必須知道的負(fù)載均衡算法分享

    我們在設(shè)計(jì)系統(tǒng)的時(shí)候,為了系統(tǒng)的高擴(kuò)展性,會(huì)創(chuàng)建無狀態(tài)的系統(tǒng)。但是,要使系統(tǒng)具有更好的可擴(kuò)展性,除了無狀態(tài)設(shè)計(jì)之外,還要考慮采用什么負(fù)載均衡算法,本文就帶領(lǐng)大家認(rèn)識(shí)以下常見的4種負(fù)載均衡算法
    2023-01-01
  • Eolink上傳文件到Java后臺(tái)進(jìn)行處理的示例代碼

    Eolink上傳文件到Java后臺(tái)進(jìn)行處理的示例代碼

    這篇文章主要介紹了Eolink上傳文件到Java后臺(tái)進(jìn)行處理,這里是上傳的excel表格數(shù)據(jù)并轉(zhuǎn)換為java集合對象、然后進(jìn)行業(yè)務(wù)邏輯處理判斷最后保存到數(shù)據(jù)庫?,需要的朋友可以參考下
    2022-12-12
  • Springboot基于Redisson實(shí)現(xiàn)Redis分布式可重入鎖源碼解析

    Springboot基于Redisson實(shí)現(xiàn)Redis分布式可重入鎖源碼解析

    這篇文章主要介紹了Springboot基于Redisson實(shí)現(xiàn)Redis分布式可重入鎖,本文通過案例源碼分析給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Spring Boot中使用Spring-data-jpa的配置方法詳解

    Spring Boot中使用Spring-data-jpa的配置方法詳解

    今天小編就為大家分享一篇關(guān)于Spring Boot中使用Spring-data-jpa的配置方法詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Java遞歸算法的使用分析

    Java遞歸算法的使用分析

    本篇文章介紹了,在Java中遞歸算法的使用分析。需要的朋友參考下
    2013-04-04
  • Spring-Security對HTTP相應(yīng)頭的安全支持方式

    Spring-Security對HTTP相應(yīng)頭的安全支持方式

    這篇文章主要介紹了Spring-Security對HTTP相應(yīng)頭的安全支持方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10

最新評(píng)論

清新县| 滨海县| 孙吴县| 江口县| 仙桃市| 苍南县| 桂阳县| 柳州市| 巴东县| 夏津县| 余江县| 新乡市| 盘山县| 五峰| 班玛县| 乌鲁木齐县| 嘉禾县| 兴文县| 津市市| 垦利县| 莒南县| 呼伦贝尔市| 卫辉市| 邯郸县| 湛江市| 抚远县| 崇信县| 沾益县| 濮阳县| 巴马| 南阳市| 平谷区| 谢通门县| 榆林市| 五指山市| 武鸣县| 苗栗县| 渝中区| 新昌县| 台江县| 辛集市|