兄弟们 现在 windows 下管理多版本的 jdk 最优解是什么呢

2025 年 7 月 16 日
 Ghostisbored
我先说下我自己尝试过的
1 、直接在 windows 下安装多个版本 但是这样会出现一个问题 高版本的 jdk 会覆盖低版本的一些环境变量
比如 idea 直接读到的是高版本 哪怕切换到低版本的路径也有一些问题
2 、wsl 方案 在 wsl 中使用 sdkman 安装多版本 idea 指向对应的 jdk 安装路径 ,但是这样有非常多的兼容问题 比如 windows 读取 liunx 的文件路径经常读取不到 maven 编译也有各种兼容问题
所以想问问大家的大家怎么管理的 谢谢
5085 次点击
所在节点    Java
39 条回复
Sezxy
2025 年 7 月 16 日
scoop
Ghostisbored
2025 年 7 月 16 日
@Goooooos 谢谢 我瞧瞧
yeqiling
2025 年 7 月 16 日
可以考虑使用本站大佬实现的 vfox ,挺好用的

https://github.com/version-fox/vfox
qilme
2025 年 7 月 17 日
在 git for windows 或者 msys2 的 bash 环境里使用 sdkman ,这样可以在本机安装 jdk
dcsuibian
2025 年 7 月 17 日
下载 8 、11 、17 、21 的 zip 版本的 jdk ,然后解压成对应的文件夹。JAVA_HOME 配的 21 的,因为主用 21 。
一般用不着切换,真要切换的话,在 IDEA 的 Project Structure 里面改一下就好了吧,而且我记得 IDEA 会解析 pom.xml 来选择 jdk 版本的
相比于 Python 和 Node.js ,我感觉 jdk 版本不太需要管理
HENQIGUAI
2025 年 7 月 17 日
我和 gpt 写了个脚本做切换
jasonkayzk
2025 年 7 月 17 日
Foxkeh
2025 年 7 月 17 日
这个不是在 IDE 里面手动指定就可以了么
Sezxy
2025 年 7 月 17 日
@jasonkayzk #7 兄弟,看标题,我看完 readme 都是说 macos 的
Sezxy
2025 年 7 月 17 日
OP 发帖子前几个小时,我刚问完 gemini ,给出的方案中,选了 scoop


以下命令在 powershell 中执行

1. Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
2. Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
3. scoop bucket add java
4. scoop search openjdk
5. scoop install openjdk17
6. scoop install openjdk21
7. scoop reset openjdk17
8. scoop reset openjdk21
qinfengge
2025 年 7 月 17 日
无脑 scoop ,现在在用,一条命令安装,一条命令切换,爽死了
chuunshii
2025 年 7 月 17 日
scoop
guyeu
2025 年 7 月 17 日
以 Java 的向前兼容性,有什么场景需要切换呢?
jasonkayzk
2025 年 7 月 17 日
@Goooooos #9 不好意思,我以为 jenv 是跨平台的,我的。
Ghostisbored
2025 年 7 月 17 日
@guyeu 我一般开发其他语言 比如 ts 、python 我的方式是在 wsl 中 用对应的多版本管理工具 但是本身的编辑器是在 windos 这样很方便 但是 java 目前发现我上面说的那些问题 特别是在新建项目 导入一些开源项目的时候遇到很多不同的版本 我们是以 java8 为主可能要进行一些兼容上的修改
Ghostisbored
2025 年 7 月 17 日
多谢大家的推荐 经过我的尝试我也使用 scoop 了 结合 @Goooooos 兄弟的命令 我在 2 条说明
如果出现类似 Couldn't find manifest for 'temurin8-jdk'
可以试试这个命令 :scoop bucket add java https://github.com/ScoopInstaller/Java
如果你以前已经安装了 jdk 因为设置了系统变量 但是 scoop 改变的是用户变量 导致切换到 scoop 版本 不能生效 可以删除以前的系统变量全部由 scoop 管理
archean
2025 年 7 月 17 日
可以看下 mise 是不是可以做到?现在我遇到任何版本管理需求,都优先考虑它。
https://mise.jdx.dev/
Lockroach
2025 年 7 月 17 日
如果强调管理的话,感觉 docker 和 dev container 应该不错
lvlongxiang199
2025 年 7 月 17 日
用 idea 下载/切换不同的 jdk

https://imgur.com/a/AEGwZmE
Binwalker
2025 年 7 月 17 日
mise 秒杀所有

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1145667

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX