为什么System.getProperty不从Windows中的System变量返回值

时间:2014-02-20 08:28:59

标签: java windows properties system

我有这个系统变量

enter image description here

此代码:

System.out.println(System.getProperty("area"));

返回null。

我可以通过System.getProperty方法从java代码访问系统变量吗?

P.S enter image description here

3 个答案:

答案 0 :(得分:3)

这不是系统变量,而是环境变量。您可以使用System.getenv()访问这些变量。 System.getProperty()用于返回启动程序时设置的任何变量。例如:

# java -Dmyproperty=myvalue MyProgram

答案 1 :(得分:1)

System#getProperty为您提供系统属性。

您可以通过System#getenv

访问环境变量Map
System.out.println(System.getenv("area"));

应该得到你的结果。

修改

尝试并运行以下代码并检查所需变量是否出现在控制台中,或者其他已定义变量的行为是否存在:

public static void main(String[] args) {
        Set<String> envSet = System.getenv().keySet();
        for (String env : envSet) {
            System.out.println("Env Variable : " + env + " has value : "
                    + System.getenv(env));
        }

    }

答案 2 :(得分:0)

列出所有Java System Properties使用,然后检查您是否拥有area属性:

Properties props = System.getProperties();
props.list(System.out);

请参阅此example