windows 环境问个终端软件(windTerm)的事情

232 天前
 mawen0726

尝试用 scoop 进行开发环境的版本管理,使用scoop reset xxx进行环境变量的设置
测试用的命令是 scoop reset temurin11-jdkscoop reset temurin8-jdk,使用 cmd 输入 java -version 都是正确的切换了
然后尝试使用 windTerm 的 cmd 去查看,发现输出的是上一次的环境变量
例如:

  1. 当前为 jdk8 ,cmd 和 windTerm 都输出 8 的版本
  2. 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(最新版),发现也会有这个问题
是这种软件都是缓存一份环境变量直到软件重启吗😹

1496 次点击
所在节点    程序员
4 条回复
codehz
232 天前
不是缓存的问题,windows 设计就是如此,新进程读取当前进程的环境变量,当然 windows 也会发送环境变量改变的信号,但只有 explorer 等少数软件做了
Windows Terminal 可以在新的 tab 里用最新的环境变量
vvhy
232 天前
装一个 refreshenv
JayYoung2021
231 天前
终端软件为 Windows Terminal 。使用 scoop 在 main/python 和 versions/python310 之间切换。
切换后,旧的选项卡(标签页、tab )内仍然显示切换前的环境变量,但是打开新的选项卡时其环境变量已经是切换后的了。符合 #1 所说的“Windows Terminal 可以在新的 tab 里用最新的环境变量”。
mawen0726
231 天前
@codehz 感谢感谢,按进程来说确实说得通了

@vvhy **refreshenv** 确实有效,感谢

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

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

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

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

© 2021 V2EX