gpt4 book ai didi

java - 为什么 eclipse 或 cmd 控制台会缓存操作系统环境变量?

转载 作者:行者123 更新时间:2023-12-01 17:24:01 24 4
gpt4 key购买 nike

我想获取一个操作系统(windows XP)环境变量,我的代码如下(jdk 1.6):

public class TestEnv{

public static void main(String...args){
System.out.println(System.getenv("catalina_home"));
}
}

首先,我的电脑中没有名为catalina_home的变量,它输出null,然后我在中添加一个catalina_home变量>我的电脑>高级>环境变量,它仍然输出null,如果我关闭并重新启动eclipse,它会输出正确的值。如果我像这样在 cmd 控制台中运行此代码,我应该关闭并重新启动一个新的 cmd 控制台以获得正确的值,并且如果我删除现有变量,首先它会输出一个非空值,直到我重新启动 eclipse 或 cmd 控制台,它可以输出null。所以我认为 eclipse 或 cmd 控制台已经缓存了操作系统环境变量,但没有证据,即使它们真的这样做,我想知道为什么?任何想法将不胜感激。非常感谢。

最佳答案

当一个进程启动时,它将从其父进程获取当前环境的副本。您必须重新启动进程才能获得一组新的环境。它就是这样儿的。 :) 这不是 Eclipse 的问题,而是操作系统的行为方式问题。

关于java - 为什么 eclipse 或 cmd 控制台会缓存操作系统环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16421575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com