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

Windows上安裝并使用SDKMAN詳細(xì)教程(JDK多版本管理)

 更新時(shí)間:2026年05月19日 09:17:36   作者:catoop  
在Linux和macOS上,開發(fā)者可以輕松使用SDKMAN來管理多個(gè)JDK版本,但Windows原生并不直接支持SDKMAN,這篇文章主要介紹了Windows上安裝并使用SDKMAN管理JDK多版本管理的相關(guān)資料,需要的朋友可以參考下

前言

SDKMAN(Software Development Kit Manager)是一個(gè)用于管理和切換不同版本軟件開發(fā)工具包(如 Java、Groovy、Scala 等)的命令行工具。在類 Unix 系統(tǒng)(Linux/macOS)中使用非常廣泛,但在 Windows 上需要借助類似 Git Bash 的 Bash 模擬環(huán)境來運(yùn)行。

說明: SDKMAN 天生在 Linux 和 Mac 上配置簡(jiǎn)單,對(duì)于 Windows 需要幾經(jīng)周折才可以正常使用。它默認(rèn)并不能直接在 Windows 原生 CMD 或 PowerShell 中運(yùn)行,需要使用模擬的 Bash 環(huán)境(如 Git Bash),這也是特意編寫本文的原因。本文將詳細(xì)介紹如何在 Windows 上借助 Git Bash 安裝并使用 SDKMAN 管理 JDK。

一、準(zhǔn)備工作:配置 Git Bash 支持 zip 命令

SDKMAN 在安裝時(shí)依賴 zip 命令,而 Git for Windows 默認(rèn)只自帶 unzip 命令,不包含 zip 命令,因此我們需要為 Git Bash 手動(dòng)添加 zip 功能。

1. GnuWin Files 下載地址

我們可以從 GnuWin Files 站點(diǎn)下載適用于 Windows 的 GNU 工具,該站點(diǎn)提供了許多常用 GNU 工具的 Windows 兼容版本。

  • 站點(diǎn)地址: https://sourceforge.net/projects/gnuwin32/files/

在該站點(diǎn)中,可下載 zip 的二進(jìn)制壓縮包。

2. 使用便捷下載鏈接

為方便讀者,我提供了以下 zip 工具的打包文件供下載:

3. 配置 Git Bash 支持 zip 命令

下載完成后,請(qǐng)按以下步驟操作:

  1. 解壓縮上述兩個(gè) zip 文件。
  2. zip.exebzip2.dll 文件拷貝至 Git 安裝目錄下的 \usr\bin 文件夾中。
  3. 一般來說,Git 安裝目錄為:C:\Program Files\Git\usr\bin

?? 注意:確保文件被寫入 usr\bin 目錄,這樣才能在 Git Bash 中識(shí)別 zip 命令。

4. 驗(yàn)證配置是否成功

打開 Git Bash 窗口,運(yùn)行以下命令檢查是否可以正常識(shí)別:

zip --version

如果命令能正常輸出版本信息,則表示配置成功,我們可以繼續(xù)進(jìn)行 SDKMAN 的安裝。

二、安裝 SDKMAN

接下來,我們正式開始 SDKMAN 的安裝流程。

1. 設(shè)置 SDKMAN 目錄環(huán)境變量并使其生效

首先需要指定 SDKMAN 的安裝目錄(注意:此時(shí)不要手動(dòng)創(chuàng)建該目錄,SDKMAN 會(huì)自動(dòng)創(chuàng)建):

export SDKMAN_DIR="/d/JavaDev/sdkman"

你也可以將該命令加入 .bashrc.bash_profile 文件中,以實(shí)現(xiàn)永久配置(建議)。

echo 'export SDKMAN_DIR="/d/JavaDev/sdkman"' >> ~/.bashrc

添加環(huán)境變量到配置文件后,需要重新加載配置文件使其生效:

source ~/.bashrc

然后驗(yàn)證環(huán)境變量是否設(shè)置成功:

echo $SDKMAN_DIR

如果輸出 /d/JavaDev/sdkman,則表示環(huán)境變量配置成功。

2. 安裝 SDKMAN

執(zhí)行以下命令自動(dòng)下載并安裝 SDKMAN:

curl -s "https://get.sdkman.io" | bash

安裝完成后,會(huì)提示你執(zhí)行一行命令來初始化 SDKMAN,示例如下:

source "$SDKMAN_DIR/bin/sdkman-init.sh"

執(zhí)行它后即可激活 SDKMAN。

3. 驗(yàn)證安裝是否成功

執(zhí)行以下命令檢查 SDKMAN 是否安裝成功:

sdk version

如果輸出 SDKMAN 的版本號(hào),則安裝成功。

三、使用 SDKMAN 管理 JDK

SDKMAN 最核心的功能之一是管理 JDK 的安裝與切換。

1. 查看 JDK 版本列表

sdk list java

該命令會(huì)顯示所有可用的 JDK 版本,包括:

  • Use 列顯示 >>> 表示當(dāng)前正在使用的版本
  • Status 列顯示 installed 表示已安裝的版本
  • 無任何標(biāo)識(shí)的表示可安裝但尚未安裝的版本

2. 安裝指定版本 JDK

例如安裝 OpenJDK 17:

sdk install java 17.0.8-tem

3. 查看當(dāng)前已安裝的 JDK

再次運(yùn)行 sdk list java 命令,已安裝的版本會(huì)顯示 > 標(biāo)識(shí)。

4. 查看 JDK 安裝路徑

使用以下命令查看指定 JDK 版本的安裝路徑:

sdk home java 17.0.8-tem

該命令會(huì)輸出對(duì)應(yīng) JDK 版本的實(shí)際安裝目錄路徑。

5. 切換默認(rèn) JDK 版本

請(qǐng)使用管理員運(yùn)行 Git Bash,否則不能正常創(chuàng)建 symlink。

非管理員用戶使用命令切換 sdk 版本時(shí)會(huì)出現(xiàn)提示 “cannot create current symlink, fall back to copy!”。
從提示可以看出,創(chuàng)建軟連接失敗,改為使用拷貝sdk的方式,這雖然不影響最終使用,但是我們還是推薦使用管理員以方式操作(正確的 symlink 可以使用 sdk current java 查看當(dāng)前版,非管理員方式的 copy 結(jié)果查看不了當(dāng)前版本)。

使用該命令切換默認(rèn) JDK(重啟會(huì)話后仍然有效):

sdk default java 17.0.8-tem

小技巧:命令行輸入 sdk default java 后按兩次 tab 鍵會(huì)列出所有已經(jīng)安裝的版本,方便拷貝切換。

6. 臨時(shí)切換 JDK 版本

以下命令是臨時(shí)切換,只在當(dāng)前會(huì)話生效:

sdk use java 11.0.20-tem

7. 卸載 JDK

sdk uninstall java 11.0.20-tem

四、配置系統(tǒng)環(huán)境變量

通過 SDKMAN 安裝的 JDK 只能在 Git Bash 環(huán)境中使用。如果需要在 Windows 原生 CMD 或 PowerShell 中使用 java 命令,需要配置系統(tǒng)環(huán)境變量。

1. 問題現(xiàn)象

在 Windows CMD 命令行中執(zhí)行以下命令會(huì)提示"不是內(nèi)部或外部命令":

java -version

2. 解決方案:配置 JAVA_HOME 和 Path 環(huán)境變量

為了保持 SDKMAN 的版本切換功能,我們應(yīng)該將系統(tǒng)環(huán)境變量指向 SDKMAN 的當(dāng)前默認(rèn)版本目錄:

  1. 右鍵"此電腦" → “屬性” → “高級(jí)系統(tǒng)設(shè)置”
  2. 點(diǎn)擊"環(huán)境變量"
  3. 在"系統(tǒng)變量"中點(diǎn)擊"新建",添加 JAVA_HOME 環(huán)境變量:
    • 變量名:JAVA_HOME
    • 變量值:D:\JavaDev\sdkman\candidates\java\current
  4. 在"系統(tǒng)變量"中找到"Path"變量,選中后點(diǎn)擊"編輯"
  5. 點(diǎn)擊"新建",添加:%JAVA_HOME%\bin
  6. 點(diǎn)擊"確定"保存所有更改

?? 關(guān)鍵點(diǎn):

  • current 目錄指向當(dāng)前通過 sdk default 命令設(shè)置的默認(rèn)版本
  • 當(dāng)通過 SDKMAN 切換默認(rèn)版本時(shí),current 目錄會(huì)自動(dòng)指向新的默認(rèn)版本
  • 這樣配置可以保持 SDKMAN 的版本切換功能在 Windows 系統(tǒng)環(huán)境中同樣生效

3. 驗(yàn)證配置結(jié)果

重新打開 CMD 窗口,執(zhí)行:

java -version

如果能正常顯示 Java 版本信息,則配置成功。

4. 驗(yàn)證版本切換功能

在 Git Bash 中切換 JDK 版本后,在 CMD 中驗(yàn)證是否同步:

# 在 Git Bash 中切換默認(rèn)版本
sdk default java 11.0.20-tem

# 在 CMD 中驗(yàn)證(需要重新打開 CMD 窗口)
java -version

?? 注意:由于 Windows 系統(tǒng)環(huán)境變量的緩存機(jī)制,可能需要重新打開 CMD 窗口才能看到版本切換的效果。

五、結(jié)語

通過以上步驟,你已成功在 Windows 系統(tǒng)中借助 Git Bash 安裝并配置了 SDKMAN,并掌握其管理 JDK 的基本命令。未來你可以用它來輕松管理多版本的 Java、Groovy、Scala 等多種開發(fā)工具,提升開發(fā)效率。

希望本教程對(duì)你有幫助。如需進(jìn)一步學(xué)習(xí) SDKMAN 的高級(jí)使用方法,歡迎參考其官方文檔。

到此這篇關(guān)于Windows上安裝并使用SDKMAN詳細(xì)教程的文章就介紹到這了,更多相關(guān)Windows安裝使用SDKMAN內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入講解基于JDK的動(dòng)態(tài)代理機(jī)制

    深入講解基于JDK的動(dòng)態(tài)代理機(jī)制

    眾所周知相比于靜態(tài)代理,動(dòng)態(tài)代理避免了開發(fā)人員編寫各個(gè)繁鎖的靜態(tài)代理類,下面這篇文章主要給大家介紹了關(guān)于基于JDK的動(dòng)態(tài)代理機(jī)制的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-07-07
  • SpringBoot下使用MyBatis-Puls代碼生成器的方法

    SpringBoot下使用MyBatis-Puls代碼生成器的方法

    這篇文章主要介紹了SpringBoot下使用MyBatis-Puls代碼生成器的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 解決mybatis 中collection嵌套collection引發(fā)的bug

    解決mybatis 中collection嵌套collection引發(fā)的bug

    這篇文章主要介紹了解決mybatis 中collection嵌套collection引發(fā)的bug,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • SpringMvc直接接收json數(shù)據(jù)自動(dòng)轉(zhuǎn)化為Map的實(shí)例

    SpringMvc直接接收json數(shù)據(jù)自動(dòng)轉(zhuǎn)化為Map的實(shí)例

    今天小編就為大家分享一篇SpringMvc直接接收json數(shù)據(jù)自動(dòng)轉(zhuǎn)化為Map的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • springboot+springJdbc+postgresql 實(shí)現(xiàn)多數(shù)據(jù)源的配置

    springboot+springJdbc+postgresql 實(shí)現(xiàn)多數(shù)據(jù)源的配置

    本文主要介紹了springboot+springJdbc+postgresql 實(shí)現(xiàn)多數(shù)據(jù)源的配置,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • spring的TransactionalEventListener事務(wù)感知源碼解析

    spring的TransactionalEventListener事務(wù)感知源碼解析

    這篇文章主要為大家介紹了spring的TransactionalEventListener事務(wù)感知源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 在java poi導(dǎo)入Excel通用工具類示例詳解

    在java poi導(dǎo)入Excel通用工具類示例詳解

    這篇文章主要給大家介紹了關(guān)于在java poi導(dǎo)入Excel通用工具類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • 解決MyEclipse中的Building workspace問題的三個(gè)方法

    解決MyEclipse中的Building workspace問題的三個(gè)方法

    這篇文章主要介紹了解決MyEclipse中的Building workspace問題的三個(gè)方法,需要的朋友可以參考下
    2015-11-11
  • 深入聊聊Java內(nèi)存泄露問題

    深入聊聊Java內(nèi)存泄露問題

    所謂內(nèi)存泄露就是指一個(gè)不再被程序使用的對(duì)象或變量一直被占據(jù)在內(nèi)存中,下面這篇文章主要給大家介紹了關(guān)于Java內(nèi)存泄露問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • SpringMVC路徑規(guī)則以及使用正則詳解

    SpringMVC路徑規(guī)則以及使用正則詳解

    本文介紹了@RequestMapping路徑通配符的用法,包括*和**的區(qū)別及其靈活位置,說明了通配符與路徑變量可共用,并講解了匹配優(yōu)先級(jí)規(guī)則:路徑越具體優(yōu)先級(jí)越高,變量比通配符更精確
    2025-10-10

最新評(píng)論

连云港市| 齐齐哈尔市| 淮安市| 衡东县| 井陉县| 土默特右旗| 黄冈市| 阳新县| 甘肃省| 伊吾县| 邯郸市| 潜山县| 凉城县| 普兰县| 盐亭县| 长顺县| 东至县| 宁晋县| 广西| 耒阳市| 武宁县| 修文县| 新沂市| 若尔盖县| 六盘水市| 新巴尔虎左旗| 福州市| 横山县| 高阳县| 呼玛县| 苍梧县| 白水县| 沧州市| 佛教| 黄浦区| 湄潭县| 富民县| 枣强县| 柳林县| 德清县| 惠安县|