你是不是也曾羡慕过 Linux 和 macOS 上的
SDKMAN
工具,一行命令就能安装并切换多个 JDK 版本?
可惜 Windows 上没有它……别急,现在我们用 Scoop + PowerShell 脚本,给你一个 Windows 上更强的 SDK 管理体验!
今天这篇文章,我将手把手教你:
在 Windows 系统上进行 Java 环境配置,尤其是需要频繁切换不同版本的 JDK 时,很多开发者会觉得痛苦不堪:环境变量难维护、IDE 检测不到 JDK、命令行版本混乱……
今天我分享一个完整的解决方案:用 Scoop 快速安装 Java 和 Maven,并实现一键切换 Java 版本,自动更新 JAVA_HOME 和 PATH!
✅ 适用于所有 Java 开发者,特别是需要频繁在 Java 8 / 11 / 17 之间切换的同学。
JAVA_HOME
和 PATH
确保你有管理员权限,打开 PowerShell,执行以下命令:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force; iwr -useb get.scoop.sh -outfile 'install.ps1'; .\install.ps1 -RunAsAdmin
场景对比:
scoop bucket add java
scoop bucket add extras
scoop bucket add versions
scoop install temurin8-jdk maven
安装完毕后验证:
java -version
mvn -v
输出示例:
openjdk version "1.8.0_452"
Apache Maven 3.9.10
scoop install temurin11-jdk
scoop install temurin17-jdk
scoop reset temurin8-jdk
⚠️ 但是这样 并不会自动更新 JAVA_HOME 和 PATH,很多工具(如 IDE 或命令行工具)依然识别不到你当前切换的 Java 版本。
让我们创建一个 Switch-Java
函数,实现:
New-Item -Path $env:USERPROFILE\Documents\WindowsPowerShell -ItemType Directory -Force
notepad $PROFILE
粘贴以下代码:
function Switch-Java {
param (
[string]$Version
)
if (-not $Version) {
Write-Host "可用的 Java 版本如下:"
scoop list | Select-String "jdk"
return
}
scoop reset $Version
$javaPath = "$env:USERPROFILE\scoop\apps\$Version\current"
[System.Environment]::SetEnvironmentVariable('JAVA_HOME', $javaPath, 'User')
$env:JAVA_HOME = $javaPath
$newPath = [System.Environment]::GetEnvironmentVariable('Path', 'User')
$newPath = ($newPath -split ';' | Where-Object { $_ -notmatch 'jdk.*\\bin' }) -join ';'
$newPath = "$newPath;$javaPath\bin"
[System.Environment]::SetEnvironmentVariable('Path', $newPath, 'User')
$env:Path = [System.Environment]::GetEnvironmentVariable('Path', 'Machine') + ';' + $newPath
Write-Host "`nJava 版本切换成功:"
java -version
Write-Host "`nJAVA_HOME 已更新为:$env:JAVA_HOME"
}
Set-Alias -Name jdk -Value Switch-Java
. $PROFILE
查看当前已安装的 Java:
jdk
切换版本:
jdk temurin8-jdk
jdk temurin11-jdk
jdk temurin17-jdk
场景 | 传统方式 | Scoop + 脚本方式 ✅ |
---|---|---|
安装 JDK | 下载 ZIP,手动解压 + 配置 | 一句命令完成安装 |
切换版本 | 手动改 JAVA_HOME + PATH | jdk 版本名 一键切换 |
IDE 检测版本 | 需要手动添加 SDK 路径 | 自动更新 JAVA_HOME |
版本管理 | 无法共存多个版本 | 多版本共存,按需切换 |
重复性劳动 | 高 | 极低(脚本自动化处理) |
这是我个人在日常开发中反复踩坑后总结出的 Java 多版本管理方案。推荐大家搭配 IntelliJ IDEA 使用,完美支持 SDK 自动识别切换。
欢迎在评论区分享你的 Java 环境管理技巧,也欢迎点赞、收藏、转发支持我 。
如果你对 PowerShell 脚本优化 或者 多语言开发环境管理 也感兴趣,欢迎关注我,我会持续分享更多开发提效技巧!