命令行集Java系统属性可以与默认值区分开来吗?

时间:2015-03-16 22:40:56

标签: java

是否有办法区分使用-D选项从命令行设置的Java系统属性与默认情况下具有相同值的系统属性?

,例如,这个程序

class Test {
  public static void main(String[] args) {
    System.out.println(System.getProperty("user.home"));
  }
}

打印

/home/uckelman

对我来说无论我是否将其作为

java Test

java -Duser.home=/home/uckelman Test

JDK提供哪些东西我可以测试以区分这两种情况?

1 个答案:

答案 0 :(得分:3)

一种方法是获取用于启动JVM的命令行参数,并检查返回的List是否设置了给定的系统属性。

RuntimeMXBean mx = ManagementFactory.getRuntimeMXBean();
System.out.println("COMMAND LINE ARGS:\n" + mx.getInputArguments());