gpt4 book ai didi

java - Java程序中如何获取环境变量(被外部修改)的修改值?

转载 作者:行者123 更新时间:2023-11-29 07:14:56 25 4
gpt4 key购买 nike

是否可以在 Java 程序中检索环境变量的修改值?

我尝试使用 System.getenv()。但是新的值并没有体现在程序中。场景是这样的:

  1. 程序检索环境变量的值。

  2. 此变量的值在程序仍在运行时从外部更改。 (它甚至可以是手动过程,例如,在 Windows 中,用户从“我的电脑”->“属性”中的“高级”选项卡更改值)

  3. 程序再次获取环境变量的值。

第二次获取值时,应该得到修改后的值。我发现使用 System.getenv() 只给我旧值。有什么可靠的方法吗? (此要求特定于 Windows,但也希望听到通用解决方案)

最佳答案

Afaik,进程可见的环境变量是在进程创建时设置的。

除了更改它们的进程之外,对操作系统变量的后续修改是不可见的。

但是,根据操作系统的不同,可能有一些方法可以检索它们。例如。在 Windows 操作系统上,它们保存在注册表中,因此您可以从中读取。

尝试读取当前用户变量在 HKCU\Environment 的 key ,以及 key

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment for system variables.

参见 this question about Windows registry一个有用的类来读取注册表。

关于java - Java程序中如何获取环境变量(被外部修改)的修改值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10434065/

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