在Java中获取环境变量的值

34
在Windows机器(Windows 7)中设置了一个环境变量,并尝试从以下Java代码中获取该变量的值。然而,它返回一个空值。

在Windows机器(Windows 7)中设置了一个环境变量,并尝试从以下Java代码中获取该变量的值。然而,它返回一个空值。

final String value = System.getenv("PE_CONF_PWD");
System.out.println(value);
//print null
现在,如果我执行以下代码,它会抛出一个安全异常,这意味着用户没有该变量。

现在,如果我执行以下代码,它会抛出安全异常,表示用户没有该变量。

SecurityManager m = new SecurityManager();
m.checkPropertyAccess("PE_CONF_PWD");
// java.security.AccessControlException: access denied ("java.util.PropertyPermission" "PE_CONF_PWD" "read") 

后来,我在JRE安全策略文件中添加了权限并添加了以下条目,但仍然返回null值。

permission java.lang.RuntimePermission "getenv.PE_CONF_PWD";

2
环境变量设置了吗?你能否从命令行看到它的值?如果是这样,那么我认为第一个片段应该返回该值。 - c.s.
1个回答

67

为了解决您的问题,此代码片段不应返回null...

final String value = System.getenv("PE_CONF_PWD");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接