为什么System.getProperty不能从Windows系统variables中返回值

我有这个系统variables

在这里输入图像说明

这个代码:

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

返回null。

我可以通过System.getProperty方法从java代码获取系统variables吗?

PS 在这里输入图像说明

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

 # java -Dmyproperty=myvalue MyProgram 

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)); } } 

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

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

看到这个例子