这类似于一个非常基本的问题,我试图查找仅从命令行传递给java程序的系统属性的列表。例如,跑步
java -Dsome.property=value -Dother.property=value2
我正在尝试获取这些属性的列表。忽略示例中的特定属性名称,实际的命令行参数将被任意命名,因此为我需要的每个属性显式调用System.getProperty("some.property")
是不可行的。
System.getProperties()
返回许多我不感兴趣的属性。是否可以区分启动程序时在命令行上设置的属性与其他地方的属性?
答案 0 :(得分:3)
是否可以区分命令上设置的属性 程序启动时与其他地方的启动行是什么?
据我所知,这不受支持。在执行代码时,命令行系统属性已经与其他所有属性合并。
根据您真正要完成的工作,要考虑的一件事可能是不要将它们设置为命令行系统属性,而是将它们作为参数传递给程序,以便您可以对它们进行评估,然后将其设置为系统属性。您的main
方法在其他大部分代码执行之前。
我希望有帮助。