0

在 Windows 7 环境中,我在系统的环境变量下定义了一个变量 VARA="x",在用户的环境变量下定义了相同的变量 VARA="y"。我如何获得系统环境变量部分中定义的 VARA 的值。我总是得到用户价值而不是系统价值。谢谢。

4

3 回答 3

3

你不能。

System.getenv()返回应用程序启动时环境变量的值。这些值的设置方式与 JVM 无关且无法访问

于 2012-11-16T23:28:50.490 回答
2

您必须使用JNA访问注册表

Advapi32Util.registryGetStringValue(WinReg.HKEY_LOCAL_MACHINE,
    "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment",
    name);

您还可以访问用户变量:

Advapi32Util.registryGetStringValue(WinReg.HKEY_CURRENT_USER,
    "Environment",
    name);
于 2012-11-17T03:42:43.093 回答
-1

在 Java 中,您只需键入:

 String variable = System.getenv("WINDIR");  
System.out.println(variable); 

你得到系统的环境变量。

如果要搜索所有系统的环境变量:

Map<String, String> variables = System.getenv();  

for (Map.Entry<String, String> entry : variables.entrySet())  
{  
   String name = entry.getKey();  
   String value = entry.getValue();  
   System.out.println(name + "=" + value);  
}  
于 2012-11-16T23:26:56.550 回答