【发布时间】:2012-05-28 01:18:39
【问题描述】:
可以通过多种方式将参数传递给 Java 应用程序。其中有:
- 命令行参数
- 属性文件 (
properties-style) - 系统属性(通过
-D选项传递) - 系统环境变量
从意识形态上讲,什么时候应该更喜欢一个而不是另一个? 例如,如果有很多参数要传递给应用程序,是否有任何理由支持命令行参数而不是 *.properties 文件?
或者,例如,可以从堆栈深处的任何类轻松访问系统变量(与 CLI 不同,CLI 只能在 main 中访问)。是否应该仅仅因为易于访问而更喜欢使用系统属性而不是 CLI?
【问题讨论】:
-
除了两个答案之外:您还可以将所有这些结合起来。例如,随着强度的增加,您可以先检查配置文件,然后检查环境变量,最后检查开关。这样您就可以通过本地开关或环境变量覆盖全局应用程序配置。
标签: java command-line-interface command-line-arguments ini