仅从命令行获取系统属性列表

问题描述 投票:1回答:1

这类似于一个非常基本的问题,我试图找到一个仅从命令行传递给java程序的系统属性列表。例如,跑步

java -Dsome.property=value -Dother.property=value2

我正在尝试获取JUST这些属性的列表。忽略示例中的特定属性名称,实际的命令行参数将被任意命名,因此为我需要的每个属性显式调用System.getProperty("some.property")是不可行的。

System.getProperties()返回许多我不感兴趣的属性。是否可以区分启动程序时在命令行上设置的属性与来自其他地方的属性?

java grails groovy
1个回答
3
投票

是否可以区分启动程序时在命令行上设置的属性与来自其他地方的属性?

据我所知,这是不支持的。在您的代码执行时,命令行系统属性已经与其他所有属性一起使用。

根据您真正想要完成的任务,需要考虑的一件事可能是不将它们设置为命令行系统属性,而是将它们作为参数传递给您的程序,以便您可以对它们进行评估,然后在main方法中将它们设置为系统属性在你的其他代码执行之前。

我希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.