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

JDK1.8與JDK17多版本共存相互切換(windows、macOS、Linux、IDE)

 更新時(shí)間:2025年12月20日 14:47:30   作者:wfyflyy  
在電腦已經(jīng)安裝之前主流的jdk1.8后避免不了要安裝新的主流jdk17,本章主要目的是介紹不同項(xiàng)目和場(chǎng)景間切換JDK?1.8和JDK?17,提高開(kāi)發(fā)效率并避免版本沖突(包括windows、macOS、Linux、IDE)

在電腦已經(jīng)安裝之前主流的jdk1.8后避免不了要安裝新的主流jdk17,本章主要目的是介紹簡(jiǎn)單的方式切換,并且指出一些容易發(fā)生的一些小錯(cuò)誤。

Windows 系統(tǒng)切換方法

手動(dòng)配置環(huán)境變量(傳統(tǒng)方法)

1.下載完jdk17后,可以將其與jdk8放在同一文件下。

 2.右擊我的電腦進(jìn)入環(huán)境配置,一般我們配置好的jdk1.8為以下

3. 同樣的原理,點(diǎn)擊新建,起個(gè)變量名JDK17,找到下載jdk17的路徑復(fù)制到變量值,點(diǎn)擊確定。

4. 我們之前配置jdk8可能是下面這個(gè)變量值,有些人的是jdk8的路徑,建議用下面這個(gè)方法,因?yàn)檫@是傻瓜的精髓。

5. win+r輸入cmd輸入java -version(中間空格)會(huì)出現(xiàn)下面證明此時(shí)正是jdk8版本

 6.回到環(huán)境變量只需將%JDK8%改為%JDK17%即可(8改17傻瓜不),點(diǎn)擊確認(rèn),然后重新打開(kāi)win+r(必須重新打開(kāi))按照5進(jìn)行會(huì)出現(xiàn)以下,證明已經(jīng)切換成功。

注:有些人切換的時(shí)候并未切換到JDK17,我也遇到了這個(gè)問(wèn)題,那是因?yàn)樵赑ath中下載jdk17的時(shí)候自動(dòng)給我們加了兩行,只要?jiǎng)h除這兩行(這里我已經(jīng)刪除了,刪除的與第一行相似,但是未刪除前位于前兩行),再重新打開(kāi)win+r,按照5進(jìn)行就會(huì)出現(xiàn)。

使用 JEnv for Windows

安裝步驟:

# 1. 安裝 Chocolatey(Windows 包管理器)
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

# 2. 使用 Chocolatey 安裝 JEnv
choco install jenv

# 3. 或者使用 Scoop 安裝
scoop bucket add versions
scoop install jenv-win

配置和使用:

# 添加 JDK 到 JEnv
jenv add "C:\Java\jdk1.8.0_381" 1.8
jenv add "C:\Java\jdk-17.0.10" 17

# 查看已安裝的 JDK
jenv versions

# 全局切換
jenv global 1.8    # 切換到 JDK 8
jenv global 17     # 切換到 JDK 17

# 本地目錄切換(僅當(dāng)前目錄有效)
cd my-java8-project
jenv local 1.8

cd my-java17-project
jenv local 17

# 僅當(dāng)前shell會(huì)話(huà)切換
jenv shell 17

macOS 系統(tǒng)切換方法

使用 Homebrew + jenv

步驟一:安裝工具

# 1. 安裝 Homebrew(如果未安裝)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 2. 安裝 jenv
brew install jenv

# 3. 配置 shell(根據(jù)你的 shell)
# bash 用戶(hù)
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile

# zsh 用戶(hù)
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc

# 重新加載配置
source ~/.zshrc   # 或 source ~/.bash_profile

步驟二:安裝多版本 JDK

# 方法1:使用 Homebrew 安裝多個(gè) JDK
brew tap homebrew/cask-versions
brew install --cask temurin8    # JDK 8
brew install --cask temurin17   # JDK 17

# 方法2:如果已手動(dòng)安裝,添加到 jenv
# 通常安裝位置:
# JDK 8: /Library/Java/JavaVirtualMachines/jdk1.8.0_381.jdk/Contents/Home
# JDK 17: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home

jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_381.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home

步驟三:使用 jenv 管理

# 查看所有可用的 JDK
jenv versions

# 設(shè)置全局默認(rèn)版本
jenv global 1.8.0.381
# 或
jenv global 17.0

# 設(shè)置項(xiàng)目特定版本
cd ~/projects/java8-project
jenv local 1.8.0.381

cd ~/projects/java17-project
jenv local 17.0

# 查看當(dāng)前使用的版本
jenv version

# 在當(dāng)前 shell 會(huì)話(huà)中臨時(shí)切換
jenv shell 17.0

Linux 系統(tǒng)切換方法

使用 update-alternatives(Ubuntu/Debian)

# 1. 安裝兩個(gè) JDK(如果未安裝)
sudo apt update
sudo apt install openjdk-8-jdk openjdk-17-jdk

# 2. 注冊(cè)到 alternatives 系統(tǒng)
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-8-openjdk-amd64/bin/java" 1
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-17-openjdk-amd64/bin/java" 2

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-8-openjdk-amd64/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-17-openjdk-amd64/bin/javac" 2

# 3. 切換版本
sudo update-alternatives --config java
# 會(huì)顯示:
# 有 2 個(gè)候選項(xiàng)可用于替換 java (提供 /usr/bin/java)。
# 
#   選擇       路徑                                          優(yōu)先級(jí)  狀態(tài)
# ------------------------------------------------------------
# * 0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   2       自動(dòng)模式
#   1            /usr/lib/jvm/java-8-openjdk-amd64/bin/java    1       手動(dòng)模式
#   2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   2       手動(dòng)模式
# 
# 要維持當(dāng)前值[*]請(qǐng)按<回車(chē)鍵>,或者鍵入選擇的編號(hào):

# 同樣切換 javac
sudo update-alternatives --config javac

# 4. 驗(yàn)證
java -version
javac -version

IDE 中的版本切換

IntelliJ IDEA 配置

項(xiàng)目級(jí)配置:

File → Project Structure (Ctrl+Alt+Shift+S)
  → Project Settings → Project
    → Project SDK: 添加多個(gè) JDK
    → Project language level: 選擇對(duì)應(yīng)版本
  
  → Project Settings → Modules
    → 每個(gè)模塊可以單獨(dú)設(shè)置 SDK

運(yùn)行配置:

Run → Edit Configurations
  → 選擇要修改的運(yùn)行配置
  → 右側(cè)找到 "JRE"
  → 選擇對(duì)應(yīng)的 JDK 版本
  
或者:
Alt+Shift+F10 → Edit Configurations

全局配置:

File → Settings (Ctrl+Alt+S)
  → Build, Execution, Deployment
    → Build Tools → Gradle/Maven
      → Gradle JVM: 選擇 JDK 版本

Eclipse 配置

1. 添加多個(gè) JDK
   Window → Preferences
     → Java → Installed JREs
       → Add... → Standard VM
       → 選擇 JDK 安裝目錄

2. 項(xiàng)目級(jí)配置
   右鍵項(xiàng)目 → Properties
     → Java Build Path → Libraries
       → JRE System Library → Edit...
         → 選擇 Alternate JRE

3. 運(yùn)行配置
   Run → Run Configurations
     → Java Application
       → 選擇要配置的類(lèi)
       → JRE 標(biāo)簽頁(yè)
         → 選擇 Runtime JRE

VSCode 配置

settings.json 配置:

{
  "java.configuration.runtimes": [
    {
      "name": "JavaSE-1.8",
      "path": "C:\\Java\\jdk1.8.0_381",
      "default": false
    },
    {
      "name": "JavaSE-17",
      "path": "C:\\Java\\jdk-17.0.10",
      "default": true
    }
  ],
  
  // 工作區(qū)特定設(shè)置
  "java.jdt.ls.java.home": "C:\\Java\\jdk-17.0.10",
  
  // Maven 配置
  "java.configuration.maven.userSettings": "C:\\path\\to\\settings.xml",
  "maven.terminal.customEnv": [
    {
      "environmentVariable": "JAVA_HOME",
      "value": "C:\\Java\\jdk-17.0.10"
    }
  ]
}

工作區(qū) .vscode/settings.json

{
  // 這個(gè)項(xiàng)目使用 Java 8
  "java.configuration.runtimes": [
    {
      "name": "JavaSE-1.8",
      "path": "/usr/lib/jvm/jdk1.8.0_381",
      "default": true
    }
  ],
  "java.home": "/usr/lib/jvm/jdk1.8.0_381"
}

常見(jiàn)問(wèn)題解決

問(wèn)題1:切換后版本沒(méi)變

# 原因:PATH 中有其他 java
echo $PATH | tr ':' '\n'
which -a java   # 查看所有 java 命令位置

# 解決:確保正確的路徑在前面
export PATH="$JAVA_HOME/bin:$PATH"

問(wèn)題2:IDE 不使用系統(tǒng)設(shè)置的 JAVA_HOME

解決:
1. IDE 內(nèi)重新配置 SDK
2. 重啟 IDE
3. 清理 IDE 緩存
4. 檢查 IDE 的配置文件

總結(jié)建議

  • 個(gè)人開(kāi)發(fā)推薦:使用 SDKMAN!(Linux/macOS)或 jenv(Windows)

  • 團(tuán)隊(duì)開(kāi)發(fā)推薦:統(tǒng)一使用 Docker 容器化,確保環(huán)境一致

通過(guò)以上方法,你可以輕松地在不同項(xiàng)目和場(chǎng)景間切換 JDK 1.8 和 JDK 17,提高開(kāi)發(fā)效率并避免版本沖突。

到此這篇關(guān)于JDK1.8與JDK17多版本共存相互切換(windows、macOS、Linux、IDE)的文章就介紹到這了,更多相關(guān)JDK1.8與JDK17自由切換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java方法參數(shù)裝配順序詳解

    Java方法參數(shù)裝配順序詳解

    這篇文章主要介紹了Java方法參數(shù)裝配順序詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 如何解決java:錯(cuò)誤:無(wú)效的源發(fā)行版:17問(wèn)題

    如何解決java:錯(cuò)誤:無(wú)效的源發(fā)行版:17問(wèn)題

    這篇文章主要介紹了如何解決java:錯(cuò)誤:無(wú)效的源發(fā)行版:17問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringBatch數(shù)據(jù)寫(xiě)入實(shí)現(xiàn)

    SpringBatch數(shù)據(jù)寫(xiě)入實(shí)現(xiàn)

    Spring Batch通過(guò)ItemWriter接口及其豐富的實(shí)現(xiàn),提供了強(qiáng)大的數(shù)據(jù)寫(xiě)入能力,本文主要介紹了SpringBatch數(shù)據(jù)寫(xiě)入實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • 解決SpringBoot加載application.properties配置文件的坑

    解決SpringBoot加載application.properties配置文件的坑

    這篇文章主要介紹了SpringBoot加載application.properties配置文件的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • logback TimeBasedRollingPolicy按天生成日志源碼解析

    logback TimeBasedRollingPolicy按天生成日志源碼解析

    這篇文章主要為大家介紹了logback TimeBasedRollingPolicy按天生成日志源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Java時(shí)間輪算法的實(shí)現(xiàn)代碼示例

    Java時(shí)間輪算法的實(shí)現(xiàn)代碼示例

    本篇文章主要介紹了Java時(shí)間輪算法的實(shí)現(xiàn)代碼示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • 關(guān)于spring boot中幾種注入方法的一些個(gè)人看法

    關(guān)于spring boot中幾種注入方法的一些個(gè)人看法

    這篇文章主要給大家介紹了關(guān)于spring boot中幾種注入方法的一些個(gè)人看法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • SpringBoot接入ftp/ftps并上傳文件和配置的代碼指南

    SpringBoot接入ftp/ftps并上傳文件和配置的代碼指南

    接入ftp服務(wù)器,在springboot上實(shí)現(xiàn)起來(lái)也不算復(fù)雜,本文主要講下如何在springboot下接入ftp服務(wù)上傳文件,并對(duì)出現(xiàn)的問(wèn)題做一些記錄,ftp服務(wù)的參數(shù)配置等,需要的朋友可以參考下
    2024-12-12
  • Swagger-boostrap-ui如何配置用戶(hù)名密碼訪(fǎng)問(wèn)

    Swagger-boostrap-ui如何配置用戶(hù)名密碼訪(fǎng)問(wèn)

    這篇文章主要介紹了Swagger-boostrap-ui如何配置用戶(hù)名密碼訪(fǎng)問(wèn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Java實(shí)現(xiàn)世界上最快的排序算法Timsort的示例代碼

    Java實(shí)現(xiàn)世界上最快的排序算法Timsort的示例代碼

    Timsort?是一個(gè)混合、穩(wěn)定的排序算法,簡(jiǎn)單來(lái)說(shuō)就是歸并排序和二分插入排序算法的混合體,號(hào)稱(chēng)世界上最好的排序算法。本文將詳解Timsort算法是定義與實(shí)現(xiàn),需要的可以參考一下
    2022-07-07

最新評(píng)論

青海省| 栾城县| 潞城市| 三穗县| 法库县| 庐江县| 嫩江县| 罗源县| 永胜县| 东源县| 新邵县| 扶余县| 镇雄县| 墨竹工卡县| 城口县| 云南省| 山丹县| 娄底市| 香港 | 三门县| 延吉市| 邯郸县| 邯郸市| 巴林右旗| 伊春市| 绍兴市| 苏尼特左旗| 盐津县| 静宁县| 丰都县| 襄城县| 永兴县| 象州县| 观塘区| 前郭尔| 台前县| 松桃| 万年县| 通辽市| 陕西省| 徐闻县|