【发布时间】:2014-03-21 01:27:20
【问题描述】:
我有这个系统变量
这段代码:
System.out.println(System.getProperty("area"));
返回空值。
我可以通过 System.getProperty 方法从 java 代码中获取系统变量的访问权限吗?
附言
【问题讨论】:
标签: java windows properties system
我有这个系统变量
这段代码:
System.out.println(System.getProperty("area"));
返回空值。
我可以通过 System.getProperty 方法从 java 代码中获取系统变量的访问权限吗?
附言
【问题讨论】:
标签: java windows properties system
这不是一个系统变量,而是一个环境变量。您可以使用System.getenv() 访问这些变量。
System.getProperty() 用于返回启动程序时设置的任何变量。示例:
# java -Dmyproperty=myvalue MyProgram
【讨论】:
java -Dmyproperty=myvalue -jar myProgram.jar 而不是 java -jar myProgram.jar -Dmyproperty=myvalue,否则 myproperty 将是 null
要列出所有Java System Properties 使用,然后检查是否有area 属性:
Properties props = System.getProperties();
props.list(System.out);
看到这个example
【讨论】:
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));
}
}
【讨论】:
set area,然后告诉我们输出结果。