java中的用户环境变量

时间:2014-05-12 13:25:46

标签: java variables environment-variables

我正在尝试在java中获取用户环境变量。

System.getEnv()方法仅返回系统环境变量。

有人知道如何获取用户环境变量吗?

3 个答案:

答案 0 :(得分:7)

运行流程时,只有一个环境。用户变量合并到系统变量中,并覆盖现有变量。然后通过System.getenv()方法检索此完整环境。

所以你实际上看到了用户的环境变量。

我刚用这四种情况对其进行了测试:

1)没有名为MYVAR的变量:

正在运行System.out.println(System.getenv("MYVAR"))打印出null

2)名为MYVAR的系统变量,其值为System

正在运行System.out.println(System.getenv("MYVAR"))打印出System

3)名为MYVAR的用户变量,其值为User

正在运行System.out.println(System.getenv("MYVAR"))打印出User

4)名为MYVAR的系统变量,其值为System,用户变量名为MYVAR且值为User

正在运行System.out.println(System.getenv("MYVAR"))打印出User


也许您是从IDE(如Eclipse)中尝试过的?更改环境变量时,遗憾的是必须重新启动Eclipse,因为它们未正确传播到运行配置。

答案 1 :(得分:1)

System.getenv(String)是正确的方法;只有"环境变量" - Windows应用"系统"环境变量适用于每个人的帐户,但它们在应用程序级别上无法区分。您可以通过打开cmd提示并执行set(不带参数)进行验证。

答案 2 :(得分:0)

通过读取路径中的注册表项,可以获得USER环境变量的值:HKEY_CURRENT_USER\\Environment在这里您将找到所有添加的USER环境变量。

,对于SYSTEM环境变量,您可以在路径中读取: HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment