Java中System.getProperty和properties.getProperty的区别是什么
我有一个属性文件,名为Java中System.getProperty和properties.getProperty的区别是什么,java,Java,我有一个属性文件,名为prop.properties。在我的主代码中,我有System.getProperty()和properties.getProperty() 我的问题是:它们都是从prop.properties获取属性还是从不同的位置获取属性,properties.getProperty()get property fromproperties和System.getProperty()get property from other place.获取JVM定义的属性(JVM本身或您在命令行
prop.properties
。在我的主代码中,我有System.getProperty()
和properties.getProperty()
我的问题是:它们都是从prop.properties
获取属性还是从不同的位置获取属性,properties.getProperty()
get property fromproperties
和System.getProperty()
get property from other place.获取JVM定义的属性(JVM本身或您在命令行中传递的任何-D
选项)。可以找到已定义属性的列表(感谢@NikitaBeloglazov)
properties.getProperty()
是有人初始化了类型为的对象的结果。但是它们不一样
Properties
对象通常是加载Java属性文件的结果(请参阅了解如何实现)System.getProperty(propName)
是System.getProperties().getProperty(propName)
的快捷方式
然而,java.util.Properties
只是java.utils.Hashtable
的一个子类,因此它的实例可以在代码中的任何地方创建,并填充任何数据
Properties props = System.getProperties();
props.getProperty("os.name");
与
System.getProperty("os.name");
然而
Properties props = new Properties();
props.load(new FileInputStream("myprops.properties"))
props.getProperty("os.name");
不一样。系统类指的是您正在运行的JVM(它将从您的操作系统获取信息)。当您在
系统
上使用getProperty
时,您将获得实际的属性
Property
类基本上是一个美化的哈希表。您可以自己完全定义它,所以当您执行getProperty()时
您可以得到设置的结果。属性
类的用处在于它有一个内置的XML解析器,您可以从文件中读取属性。取决于属性
的来源。如果属性=系统.getProperties();
,那么是的,它们将是一样的。如果属性propertes=new Properties();
,那么不,它们不会是一样的。谢谢你,Ben,现在我明白了。你可以添加到java教程中有关系统属性的链接吗?谢谢你的帮助。现在我可以弄清楚了。谢谢你的回答,这非常有帮助