尝试用 scoop 进行开发环境的版本管理,使用scoop reset xxx
进行环境变量的设置
测试用的命令是 scoop reset temurin11-jdk
和 scoop reset temurin8-jdk
,使用 cmd 输入 java -version
都是正确的切换了
然后尝试使用 windTerm 的 cmd 去查看,发现输出的是上一次的环境变量
例如:
scoop reset temurin11-jdk
切换为 jdk11 ,新开的 cmd 窗口为 jdk11 ,windTerm 新开一个 shell 还是显示 jdk8测试方式都是新开 cmd 和 windTerm 内新开一个 shell 测试的
尝试过在 windTerm 中切换到git-bash
执行 source /etc/profile 也无效
只有完全把 windTerm 重启了,才能读到最新的 windows 环境变量
在已切换 jdk 的情况下,新开的 shell 尝试过打印环境变量,显示的是旧的环境变量
本来以为是 windTerm 的问题,下了 MobaXterm(最新版),发现也会有这个问题
是这种软件都是缓存一份环境变量直到软件重启吗😹
1
codehz 317 天前 via iPhone
不是缓存的问题,windows 设计就是如此,新进程读取当前进程的环境变量,当然 windows 也会发送环境变量改变的信号,但只有 explorer 等少数软件做了
Windows Terminal 可以在新的 tab 里用最新的环境变量 |
2
vvhy 317 天前
装一个 refreshenv
|
3
JayYoung2021 317 天前
终端软件为 Windows Terminal 。使用 scoop 在 main/python 和 versions/python310 之间切换。
切换后,旧的选项卡(标签页、tab )内仍然显示切换前的环境变量,但是打开新的选项卡时其环境变量已经是切换后的了。符合 #1 所说的“Windows Terminal 可以在新的 tab 里用最新的环境变量”。 |