在电脑已经安装之前主流的jdk1.8后避免不了要安装新的主流jdk17,本章主要目的是介绍简单的方式切换,并且指出一些容易发生的一些小错误。
windows 系统切换方法
手动配置环境变量(传统方法)
1.下载完jdk17后,可以将其与jdk8放在同一文件下。

2.右击我的电脑进入环境配置,一般我们配置好的jdk1.8为以下

3. 同样的原理,点击新建,起个变量名jdk17,找到下载jdk17的路径复制到变量值,点击确定。

4. 我们之前配置jdk8可能是下面这个变量值,有些人的是jdk8的路径,建议用下面这个方法,因为这是傻瓜的精髓。

5. win+r输入cmd输入java -version(中间空格)会出现下面证明此时正是jdk8版本

6.回到环境变量只需将%jdk8%改为%jdk17%即可(8改17傻瓜不),点击确认,然后重新打开win+r(必须重新打开)按照5进行会出现以下,证明已经切换成功。

注:有些人切换的时候并未切换到jdk17,我也遇到了这个问题,那是因为在path中下载jdk17的时候自动给我们加了两行,只要删除这两行(这里我已经删除了,删除的与第一行相似,但是未删除前位于前两行),再重新打开win+r,按照5进行就会出现。

使用 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 # 本地目录切换(仅当前目录有效) cd my-java8-project jenv local 1.8 cd my-java17-project jenv local 17 # 仅当前shell会话切换 jenv shell 17
macos 系统切换方法
使用 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(根据你的 shell) # bash 用户 echo 'export path="$home/.jenv/bin:$path"' >> ~/.bash_profile echo 'eval "$(jenv init -)"' >> ~/.bash_profile # zsh 用户 echo 'export path="$home/.jenv/bin:$path"' >> ~/.zshrc echo 'eval "$(jenv init -)"' >> ~/.zshrc # 重新加载配置 source ~/.zshrc # 或 source ~/.bash_profile
步骤二:安装多版本 jdk
# 方法1:使用 homebrew 安装多个 jdk brew tap homebrew/cask-versions brew install --cask temurin8 # jdk 8 brew install --cask temurin17 # jdk 17 # 方法2:如果已手动安装,添加到 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 # 设置全局默认版本 jenv global 1.8.0.381 # 或 jenv global 17.0 # 设置项目特定版本 cd ~/projects/java8-project jenv local 1.8.0.381 cd ~/projects/java17-project jenv local 17.0 # 查看当前使用的版本 jenv version # 在当前 shell 会话中临时切换 jenv shell 17.0
linux 系统切换方法
使用 update-alternatives(ubuntu/debian)
# 1. 安装两个 jdk(如果未安装) sudo apt update sudo apt install openjdk-8-jdk openjdk-17-jdk # 2. 注册到 alternatives 系统 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 # 会显示: # 有 2 个候选项可用于替换 java (提供 /usr/bin/java)。 # # 选择 路径 优先级 状态 # ------------------------------------------------------------ # * 0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 2 自动模式 # 1 /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1 手动模式 # 2 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 2 手动模式 # # 要维持当前值[*]请按<回车键>,或者键入选择的编号: # 同样切换 javac sudo update-alternatives --config javac # 4. 验证 java -version javac -version
ide 中的版本切换
intellij idea 配置
项目级配置:
file → project structure (ctrl+alt+shift+s)
→ project settings → project
→ project sdk: 添加多个 jdk
→ project language level: 选择对应版本
→ project settings → modules
→ 每个模块可以单独设置 sdk运行配置:
run → edit configurations → 选择要修改的运行配置 → 右侧找到 "jre" → 选择对应的 jdk 版本 或者: alt+shift+f10 → edit configurations
全局配置:
file → settings (ctrl+alt+s)
→ build, execution, deployment
→ build tools → gradle/maven
→ gradle jvm: 选择 jdk 版本eclipse 配置
1. 添加多个 jdk
window → preferences
→ java → installed jres
→ add... → standard vm
→ 选择 jdk 安装目录
2. 项目级配置
右键项目 → properties
→ java build path → libraries
→ jre system library → edit...
→ 选择 alternate jre
3. 运行配置
run → run configurations
→ java application
→ 选择要配置的类
→ jre 标签页
→ 选择 runtime jrevscode 配置
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
}
],
// 工作区特定设置
"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"
}
]
}工作区 .vscode/settings.json:
{
// 这个项目使用 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"
}
常见问题解决
问题1:切换后版本没变
# 原因:path 中有其他 java echo $path | tr ':' '\n' which -a java # 查看所有 java 命令位置 # 解决:确保正确的路径在前面 export path="$java_home/bin:$path"
问题2:ide 不使用系统设置的 java_home
解决: 1. ide 内重新配置 sdk 2. 重启 ide 3. 清理 ide 缓存 4. 检查 ide 的配置文件
总结建议
个人开发推荐:使用 sdkman!(linux/macos)或 jenv(windows)
团队开发推荐:统一使用 docker 容器化,确保环境一致
通过以上方法,你可以轻松地在不同项目和场景间切换 jdk 1.8 和 jdk 17,提高开发效率并避免版本冲突。
到此这篇关于jdk1.8与jdk17多版本共存相互切换(windows、macos、linux、ide)的文章就介绍到这了,更多相关jdk1.8与jdk17自由切换内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论