gpt4 book ai didi

java - Java 系统属性用于设置和获取任意程序参数是否正确?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:01:23 26 4
gpt4 key购买 nike

可以使用 -Dproperty=value 参数来设置任意系统属性(不是 JVM 实际使用的一些固定的系统属性集)并且程序可以稍后使用 获取这些属性System.getProperty("属性")。这样做是否正确?

这方面我还没有找到权威的答案,所以才来这里问。在我看来,程序参数应该通过程序的命令行参数设置,而不是 JVM。然而,也许这是一种公认​​的做法,只是到目前为止我所看过的任何地方都没有记录。我想确定一下。谢谢。

最佳答案

我认为 Java 系统属性用于将值从命令行传递到执行内部的库或插件。也就是说,内部组件无法直接从执行它的主程序接收参数。因此它从 Java 系统属性所在的“上下文”中读取它。

如果我们将其视为层,命令行参数将是中间较低层的参数,而系统 java 属性是所有较低层的上下文。

command line: arguments + properties
main program: uses arguments
some library/plugin: uses properties from context

如果不是这样,主程序必须将用户可以设置的所有参数都带到下层,这会很麻烦。

我不喜欢依赖上下文属性,所以如果我设计一个程序,我会尝试以某种非全局方式传递所有属性。但有时它会非常方便(并且使用命名空间,它们不太可能发生冲突)。

关于java - Java 系统属性用于设置和获取任意程序参数是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8969627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com