首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中命令行参数与文件属性(*.properties)与系统属性(-D)

在Java中命令行参数与文件属性(*.properties)与系统属性(-D)
EN

Stack Overflow用户
提问于 2012-05-21 14:15:07
回答 2查看 2.5K关注 0票数 0

有许多方法可以将参数传递给Java应用程序。其中包括:

arguments

  • Properties (properties-style)

  • System属性(通过-D选项传递)

  • 系统环境变量

在思想上,人们应该什么时候选择反对其他人呢?例如,如果要传递给应用程序的参数很多,那么是否有理由支持命令行参数而不是*.properties文件?

例如,可以轻松地从堆栈深处的任何类访问系统变量(相对于只能在main中访问的CLI )。与CLI相比,人们是否更喜欢使用系统属性,这仅仅是因为访问比较容易?

EN

回答 2

Stack Overflow用户

发布于 2012-05-21 14:28:53

取决于部署需要回答其中的一些问题。

命令行params:当您有其他进程生成应用程序并且希望从调用进程中控制这些参数时,这是很好的。克伦产卵就是一个例子。

文件:我不喜欢ini风格.你被困在Windows上了。如果您想要一些非常简单的内容,可以使用Properties类加载.properties文件。或者您可以使用XML。文件还为您提供了文件位置的选择,相对于应用程序部署而言,这是很好的选择,而且有些人还喜欢将它们抛到像/etc这样的全局位置。

环境变量:这些变量有各自的位置,尽管它使部署变得更加复杂。只有当环境影响应用程序的参数时,我才会使用它。也就是说,您的应用程序将采取不同的操作,或者需要根据操作系统、机器等进行不同的配置。

偏好是主观的,取决于应用程序的类型、部署、系统等。

票数 4
EN

Stack Overflow用户

发布于 2012-05-21 14:46:16

嗯,关于配置,每个程序员都有自己的想法,如何做正确的方法.和往常一样,它取决于很多事情。

我用这种方式来处理这个选择:如果它类似于环境变量(类似于$PATH或$SHELL),并且可以/必须由调用方(另一个程序或启动脚本)设置,则它通过-D开关直接进入System.Properties。

如果它是其他的东西,那么它就直接进入属性文件(实际上它的加载方式并不是很重要,有几种方法可以做到,每一种方法都有优缺点,我的fav是从类路径加载的,但只是一个品味问题)。

我试着在System.Properties中保持最小,非常重要的东西,如果它是一个大配置,更好地使用属性或XML,甚至更好的数据库表,但同样地,它取决于您的应用程序的复杂性(带有DB的HelloWorld显然过高了^^)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10686963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档