Java中的System.getProperty和properties.getProperty有什么区别

Jay*_*ang 25 java

我有一个名为的属性文件prop.properties.在我的主要代码中,我有两个System.getProperty()properties.getProperty().

我的问题是:他们既可以获得房产,prop.properties也可以从不同的地方properties.getProperty()获得房产,获得房产prop.propertiesSystem.getProperty()从其他地方获得房产.

fge*_*fge 43

System.getProperty()获取JVM定义的属性(JVM本身或-D您可能在命令行传递的任何选项).可在此处找到已定义属性的列表(感谢@NikitaBeloglazov).

properties.getProperty()是某人初始化类型对象的结果Properties.他们是不一样的,但你可以得到什么System有一个Properties实例.

一个Properties对象是经常加载Java属性文件(见结果在这里对如何做到这一点)


Ale*_*exR 14

System.getProperty(propName)是一个快捷方式System.getProperties().getProperty(propName).

但是java.util.Properties它只是一个子类java.utils.Hashtable,因此它的实例可以在代码中的任何地方创建并填充任何数据.显然是代码

Properties props = System.getProperties();
props.getProperty("os.name");
Run Code Online (Sandbox Code Playgroud)

是相同的

System.getProperty("os.name");
Run Code Online (Sandbox Code Playgroud)

然而

Properties props = new Properties();
props.load(new FileInputStream("myprops.properties"))
props.getProperty("os.name");
Run Code Online (Sandbox Code Playgroud)

不一样.