V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mawen0726
V2EX  ›  程序员

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

  •  
  •   mawen0726 · 289 天前 · 1573 次点击
    这是一个创建于 289 天前的主题,其中的信息可能已经有所发展或是发生改变。

    尝试用 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(最新版),发现也会有这个问题
    是这种软件都是缓存一份环境变量直到软件重启吗😹

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

    @vvhy **refreshenv** 确实有效,感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1996 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:21 · PVG 08:21 · LAX 16:21 · JFK 19:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.