亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Windows系統(tǒng)下JDK版本一鍵、自動(dòng)切換工具圖文教程

 更新時(shí)間:2025年06月28日 15:32:23   作者:lilili147369  
這篇文章主要介紹了Windows系統(tǒng)下JDK版本一鍵、自動(dòng)切換工具的相關(guān)資料,通過(guò)批處理腳本動(dòng)態(tài)管理環(huán)境變量,支持JDK8-100版本,簡(jiǎn)化多項(xiàng)目開(kāi)發(fā),提升效率并減少配置錯(cuò)誤,需要的朋友可以參考下

一、背景介紹

作為Java開(kāi)發(fā)者,我們經(jīng)常需要在不同的JDK版本之間切換,比如:

  • 維護(hù)基于JDK8的老項(xiàng)目
  • 開(kāi)發(fā)使用JDK17的Spring Boot 3.x項(xiàng)目
  • 嘗試JDK21的新特性
  • 測(cè)試不同JDK版本的性能差異

手動(dòng)切換JDK版本需要修改系統(tǒng)環(huán)境變量,過(guò)程繁瑣且容易出錯(cuò)。為了提高開(kāi)發(fā)效率,我們可以開(kāi)發(fā)一個(gè)一鍵切換工具。
以下是完整的jdk切換腳本,安裝好jdk,并配置JAVA_HOME后運(yùn)行switch-jdk.bat

注意:修改腳本中的C:\Users\lk\Desktop為你自己的用戶(hù)桌面的路徑

@echo off
:: 獲取管理員權(quán)限但在當(dāng)前窗口執(zhí)行
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
    :: 創(chuàng)建臨時(shí)VBS腳本
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    :: 修改為在當(dāng)前窗口運(yùn)行,并且先cd到指定目錄
    set "params=%*"
    echo UAC.ShellExecute "cmd.exe", "/k cd /d C:\Users\lk\Desktop && ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B
)

:: 顯示當(dāng)前目錄
echo 當(dāng)前工作目錄:
cd
echo.

:: 動(dòng)態(tài)生成8-100的版本號(hào)列表
setlocal EnableDelayedExpansion
set "SUPPORTED_VERSIONS="
for /l %%i in (8,1,100) do (
    set "SUPPORTED_VERSIONS=!SUPPORTED_VERSIONS! %%i"
)

:: 獲取已安裝的JDK版本
set "INSTALLED_VERSIONS="
for %%v in (%SUPPORTED_VERSIONS%) do (
    if defined jdk%%v (
        set "INSTALLED_VERSIONS=!INSTALLED_VERSIONS! %%v"
    )
)

:: 設(shè)置所有版本的命令別名
for %%v in (%SUPPORTED_VERSIONS%) do (
    doskey %%v=call "%~f0" %%v
)

:: 如果沒(méi)有參數(shù),顯示歡迎信息
if "%~1"=="" (
    echo JDK切換工具已準(zhǔn)備就緒!
    echo 支持JDK版本范圍:8-100
    echo ========================================
    echo 已安裝的JDK版本:
    echo ----------------------------------------
    set "found_any="
    for %%v in (%SUPPORTED_VERSIONS%) do (
        if defined jdk%%v (
            set "found_any=1"
            set "jdkPath=!jdk%%v!"
            echo   %%v  - JDK%%v
            echo       路徑: !jdkPath!
        )
    )
    if not defined found_any (
        echo   未檢測(cè)到已安裝的JDK
        echo   請(qǐng)先設(shè)置環(huán)境變量,格式為: jdk^<版本號(hào)^>
        echo   例如: jdk8, jdk11, jdk17, jdk21 等
    )
    echo ----------------------------------------
    echo 當(dāng)前JAVA_HOME: %JAVA_HOME%
    echo 當(dāng)前Java版本:
    java -version
    echo ----------------------------------------
    echo.
    echo 使用方法:直接輸入版本號(hào)即可切換
    echo 例如: 8 ^(切換到JDK8^)
    echo       17 ^(切換到JDK17^)
    echo ========================================
    echo.
    cmd /k
    exit /b 0
)

:: 清除之前可能存在的變量
set "version="
set "jdkEnvName="

:: 清理版本號(hào)中的非數(shù)字字符
set "version=%~1"
set "version=%version:jdk=%"
set "version=%version:java=%"
set "version=%version: =%"

:: 驗(yàn)證版本號(hào)是否在支持范圍內(nèi)
set "is_supported="
for %%v in (%SUPPORTED_VERSIONS%) do (
    if "%%v"=="%version%" set "is_supported=1"
)
if not defined is_supported (
    echo 錯(cuò)誤: 不支持的JDK版本 %version%
    echo 支持的版本范圍: 8-100
    pause
    exit /b 1
)

:: 設(shè)置對(duì)應(yīng)的環(huán)境變量名
set "jdkEnvName=jdk%version%"

:: 驗(yàn)證目標(biāo)JDK環(huán)境變量是否存在
if not defined %jdkEnvName% (
    echo 錯(cuò)誤: 找不到 %jdkEnvName% 環(huán)境變量,請(qǐng)確保已正確設(shè)置!
    echo 請(qǐng)檢查系統(tǒng)環(huán)境變量中是否存在 %jdkEnvName% 變量。
    echo.
    echo 已安裝的JDK版本:
    for %%v in (%SUPPORTED_VERSIONS%) do (
        if defined jdk%%v (
            set "jdkPath=!jdk%%v!"
            echo   %%v  - !jdkPath!
        )
    )
    echo.
    echo 您可以通過(guò)以下步驟設(shè)置新的JDK版本:
    echo 1. 右鍵"此電腦" -^> "屬性" -^> "高級(jí)系統(tǒng)設(shè)置" -^> "環(huán)境變量"
    echo 2. 在"系統(tǒng)變量"中添加 %jdkEnvName% 變量
    echo 3. 將值設(shè)置為對(duì)應(yīng)JDK的安裝路徑(如:C:\Program Files\Java\jdk-%version%)
    pause
    exit /b 1
)

:: 顯示當(dāng)前狀態(tài)
echo 當(dāng)前JAVA_HOME: %JAVA_HOME%
echo 準(zhǔn)備切換到: !%jdkEnvName%!

:: 更新JAVA_HOME
echo.
echo 正在切換到 %jdkEnvName% ...
setx JAVA_HOME "%%%jdkEnvName%%%" /M
if %errorLevel% neq 0 (
    echo 更新JAVA_HOME失敗!
    pause
    exit /b 1
)

:: 刷新當(dāng)前會(huì)話的環(huán)境變量
set "JAVA_HOME=!%jdkEnvName%!"
set "PATH=%JAVA_HOME%\bin;%PATH%"

:: 顯示進(jìn)度
echo 環(huán)境變量已更新,正在驗(yàn)證...
echo.

:: 等待環(huán)境變量更新
timeout /t 2 /nobreak >nul

:: 驗(yàn)證Java版本
echo 當(dāng)前Java版本:
echo -------------
java -version
if %errorLevel% neq 0 (
    echo Java命令執(zhí)行失敗,請(qǐng)檢查環(huán)境變量設(shè)置!
    pause
    exit /b 1
)

echo.
echo -------------
echo JAVA_HOME 已更新為: %JAVA_HOME%
echo JDK切換完成!
echo.

:: 保持窗口打開(kāi)并停留在指定目錄
cmd /k cd /d C:\Users\lk\Desktop

二、環(huán)境變量配置說(shuō)明

2.1 基礎(chǔ)環(huán)境變量配置

# CLASSPATH配置

.;%JAVA_HOME%\lib;

# JAVA_HOME配置(當(dāng)前使用的JDK版本)

%jdk17%

# 各JDK版本路徑配置

jdk8=D:\javaWork\jdk1.8.0_181

jdk11=D:\javaWork\jdk11

jdk17=D:\javaWork\jdk17.0.9

jdk21=D:\javaWork\jdk-21

# Path配置(添加Java bin目錄)

.;%JAVA_HOME%\bin;

2.2 配置說(shuō)明

  • 使用%jdkXX%形式的變量引用,便于動(dòng)態(tài)切換
  • JAVA_HOME使用引用形式,只需修改引用值即可切換版本
  • Path中使用%JAVA_HOME%確保始終使用當(dāng)前選擇的JDK

三、切換工具實(shí)現(xiàn)

3.1 核心功能實(shí)現(xiàn)

@echo off
:: switch-jdk.bat

:: 1. 管理員權(quán)限獲取

nul 2>&1 “%SYSTEMROOT%\system32\cacls.exe” “%SYSTEMROOT%\system32\config\system”
if ‘%errorlevel%' NEQ ‘0' (
echo Set UAC = CreateObject(“Shell.Application”) > “%temp%\getadmin.vbs”
echo UAC.ShellExecute “cmd.exe”, “/k cd /d C:\Users\lk\Desktop && “”%~s0"” %params%", “”, “runas”, 1 >> “%temp%\getadmin.vbs”
“%temp%\getadmin.vbs”
del “%temp%\getadmin.vbs”
exit /B
)

:: 2. 動(dòng)態(tài)版本支持

setlocal EnableDelayedExpansion
set “SUPPORTED_VERSIONS=”
for /l %%i in (8,1,100) do (
set “SUPPORTED_VERSIONS=!SUPPORTED_VERSIONS! %%i”
)

:: 3. 版本檢測(cè)與別名設(shè)置

for %%v in (%SUPPORTED_VERSIONS%) do (
if defined jdk%%v (
set “INSTALLED_VERSIONS=!INSTALLED_VERSIONS! %%v”
)
doskey %%v=call “%~f0” %%v
)

3.2 核心功能說(shuō)明

  • 管理員權(quán)限獲取
  • 使用UAC提權(quán)確保能修改系統(tǒng)環(huán)境變量
  • 保持在當(dāng)前窗口執(zhí)行,提供更好的用戶(hù)體驗(yàn)
  • 動(dòng)態(tài)版本支持
  • 支持JDK 8-100的所有版本
  • 自動(dòng)檢測(cè)系統(tǒng)中已安裝的JDK版本
  • 無(wú)需手動(dòng)維護(hù)版本列表
  • 命令別名設(shè)置
  • 使用doskey設(shè)置簡(jiǎn)化命令
  • 支持直接使用版本號(hào)切換(如:8、17)

3.3 版本切換實(shí)現(xiàn)

:: 版本驗(yàn)證和切換
set “jdkEnvName=jdk%version%”
if not defined %jdkEnvName% (
echo 錯(cuò)誤: 找不到 %jdkEnvName% 環(huán)境變量
exit /b 1
)

:: 更新JAVA_HOME
setx JAVA_HOME “%%%jdkEnvName%%%” /M
set “JAVA_HOME=!%jdkEnvName%!”
set “PATH=%JAVA_HOME%\bin;%PATH%”

四、使用說(shuō)明

4.1 安裝步驟

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

    # 系統(tǒng)變量中添加各JDK版本
    jdk8=D:\javaWork\jdk1.8.0_181
    jdk11=D:\javaWork\jdk11
    jdk17=D:\javaWork\jdk17.0.9
    jdk21=D:\javaWork\jdk-21
    # 配置JAVA_HOME(初始值)
    JAVA_HOME=%jdk17%
    # 配置Path(添加)
    %JAVA_HOME%\bin
  • 腳本部署

    # 將switch-jdk.bat保存到固定目錄或者創(chuàng)建桌面快捷方式

    雙擊運(yùn)行

    C:\Tools\JDKSwitch\switch-jdk.bat

4.2 使用方法

  • 查看可用版本

  • switch-jdk.bat
  • 切換JDK版本

    # 方式1:直接使用版本號(hào)
    8 # 切換到JDK8
    17 # 切換到JDK17
    # 方式2:使用完整命令
    switch-jdk.bat 8 # 切換到JDK8
    switch-jdk.bat 17 # 切換到JDK17

4.3 驗(yàn)證切換結(jié)果

# 查看Java版本
java -version
# 查看JAVA_HOME
echo %JAVA_HOME%

五、擴(kuò)展功能

5.1 添加新JDK版本

  • 安裝新版本JDK
  • 添加環(huán)境變量:jdkXX=安裝路徑
  • 無(wú)需修改腳本,自動(dòng)支持新版本

5.2 錯(cuò)誤處理

  • 版本號(hào)驗(yàn)證
  • 環(huán)境變量檢查
  • 詳細(xì)的錯(cuò)誤提示
  • Java命令驗(yàn)證

六、最佳實(shí)踐

  • 環(huán)境變量設(shè)置規(guī)范
  • 使用統(tǒng)一的命名規(guī)則(jdk + 版本號(hào))
  • 路徑中避免空格和特殊字符
  • 使用絕對(duì)路徑
  • 使用建議
  • 創(chuàng)建桌面快捷方式
  • 將腳本目錄添加到Path
  • 定期清理無(wú)用的JDK版本
  • 注意事項(xiàng)
  • 首次使用需要管理員權(quán)限
  • 某些IDE可能需要重啟
  • 注意環(huán)境變量沖突

七、總結(jié)

這個(gè)JDK版本切換工具具有以下優(yōu)勢(shì):

  • 使用簡(jiǎn)單,一鍵切換
  • 支持廣泛的版本范圍
  • 自動(dòng)檢測(cè)已安裝版本
  • 無(wú)需頻繁修改腳本
  • 提供詳細(xì)的使用反饋

對(duì)于Java開(kāi)發(fā)者來(lái)說(shuō),這個(gè)工具可以:

  • 提高開(kāi)發(fā)效率
  • 減少環(huán)境配置錯(cuò)誤
  • 方便測(cè)試不同JDK版本
  • 簡(jiǎn)化多項(xiàng)目開(kāi)發(fā)流程

到此這篇關(guān)于Windows系統(tǒng)下JDK版本一鍵、自動(dòng)切換工具的文章就介紹到這了,更多相關(guān)JDK版本一鍵自動(dòng)切換工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot mybais配置多數(shù)據(jù)源過(guò)程解析

    Springboot mybais配置多數(shù)據(jù)源過(guò)程解析

    這篇文章主要介紹了Springboot+mybais配置多數(shù)據(jù)源過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 淺析Java的Hibernate框架中的緩存和延遲加載機(jī)制

    淺析Java的Hibernate框架中的緩存和延遲加載機(jī)制

    這篇文章主要介紹了Java的Hibernate框架中的緩存和延遲加載機(jī)制,Hibernate是注明的Java下SSH三大web開(kāi)發(fā)框架之一,需要的朋友可以參考下
    2015-11-11
  • springboot開(kāi)發(fā)flowable定時(shí)任務(wù)問(wèn)題

    springboot開(kāi)發(fā)flowable定時(shí)任務(wù)問(wèn)題

    這篇文章主要介紹了springboot開(kāi)發(fā)flowable定時(shí)任務(wù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java利用FTPClient實(shí)現(xiàn)文件上傳和下載的實(shí)踐指南

    Java利用FTPClient實(shí)現(xiàn)文件上傳和下載的實(shí)踐指南

    本文介紹如何使用Java中的FTPClient庫(kù)來(lái)執(zhí)行文件的上傳和下載操作,首先,講解了FTPClient的基本用法,包括連接FTP服務(wù)器和登錄驗(yàn)證,然后,詳細(xì)說(shuō)明了如何使用 storeFile() 和 retrieveFile() 方法分別實(shí)現(xiàn)文件上傳和下載,需要的朋友可以參考下
    2025-05-05
  • springboot序列化和反序列化器配置方法

    springboot序列化和反序列化器配置方法

    這篇文章主要介紹了springboot序列化和反序列化器配置方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • SpringBoot中GlobalExceptionHandler異常處理機(jī)制詳細(xì)說(shuō)明

    SpringBoot中GlobalExceptionHandler異常處理機(jī)制詳細(xì)說(shuō)明

    Spring Boot的GlobalExceptionHandler是一個(gè)全局異常處理器,用于捕獲和處理應(yīng)用程序中發(fā)生的所有異常,這篇文章主要給大家介紹了關(guān)于Java中GlobalExceptionHandler異常處理機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • servlet實(shí)現(xiàn)簡(jiǎn)單的權(quán)限管理和敏感詞過(guò)濾功能

    servlet實(shí)現(xiàn)簡(jiǎn)單的權(quán)限管理和敏感詞過(guò)濾功能

    JavaEE課要求用servlet和過(guò)濾器實(shí)現(xiàn)權(quán)限管理和敏感詞過(guò)濾功能,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Spring AOP的使用詳解

    Spring AOP的使用詳解

    這篇文章主要介紹了Spring AOP的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • SpringBoot+Vue實(shí)現(xiàn)動(dòng)態(tài)菜單的思路梳理

    SpringBoot+Vue實(shí)現(xiàn)動(dòng)態(tài)菜單的思路梳理

    這篇文章主要為大家詳細(xì)介紹了利用SpringBoot+Vue實(shí)現(xiàn)動(dòng)態(tài)菜單的思路梳理,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-07-07
  • Java重寫(xiě)(Override)與重載(Overload)區(qū)別原理解析

    Java重寫(xiě)(Override)與重載(Overload)區(qū)別原理解析

    這篇文章主要介紹了Java重寫(xiě)(Override)與重載(Overload)區(qū)別原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論