取出System的Properties内容的方法

来源:互联网 发布:泰拉瑞亚数据统计器 编辑:程序博客网 时间:2024/06/02 14:57

System的getProperties()方法返回Properties类型对象,其中Properties类属于Hashtable的子类,属于Map集合的一个子类对象,所以可以通过key和value取值。Properties的key和value实际上都是String类型的。这一点是其和Hashtable不同的地方。我们可以查看Properties.java得到这个信息——

    public synchronized Object setProperty(String key, String value) {        return put(key, value);    }


在取值的时候,有两种方法——

第一种是使用System的getProperties(String key)方法:

此时要定义key为String,而不能向上转型为Object型,因为System的getProperties(String key)方法要求传入的key必须是String类型的。

通过迭代器拿到key(定义为String类型!!!)之后我们就可以使用getProperties()方法得到String型的value。

第二种是Hashtable的get()方法:

get(Object key)方法并不强制要求key要为String,只要是Object类型即可。


下面是代码实现,在实现的时候我们第一种使用了迭代器,第二种没有使用迭代器,直接使用for循环遍历取值,纯属个人爱好,跟上面介绍的两种方法无关——

import java.util.Iterator;import java.util.Properties;public class SystemDemo {public static void main(String[] args) {// TODO Auto-generated method stubProperties prop = System.getProperties();//Properties属于Hashtable的子类,可以通过key和value取值System.out.println("取出System的Properties内容的方法一:");Iterator it = prop.keySet().iterator();while(it.hasNext()){String key = (String)it.next();String value = prop.getProperty(key);//static String getProperty(String key) //getProperty只能通过String的key去获取value,因为System返回的Properties集合的key和value确实都是字符串System.out.println(key + "-----" + value.toString());}System.out.println("取出System的Properties内容的方法二:");for(Object obj : prop.keySet()){String value = (String)prop.get(obj);//也可以直接用HashSet的get()方法取值,这个方法只要求key是Object型System.out.println(obj + "-----" + value.toString());}}}
得到的是系统加载时的属性信息,每个人都不一样,我的结果如下——

取出System的Properties内容的方法一:java.runtime.name-----Java(TM) SE Runtime Environmentsun.boot.library.path-----/usr/lib/jvm/java-8-jdk/jre/lib/amd64java.vm.version-----25.45-b02java.vm.vendor-----Oracle Corporationjava.vendor.url-----http://java.oracle.com/path.separator-----:java.vm.name-----Java HotSpot(TM) 64-Bit Server VMfile.encoding.pkg-----sun.iouser.country-----USsun.java.launcher-----SUN_STANDARDsun.os.patch.level-----unknownjava.vm.specification.name-----Java Virtual Machine Specificationuser.dir-----/home/lpp/Codes/JavaWorkSpace/Testjava.runtime.version-----1.8.0_45-b14java.awt.graphicsenv-----sun.awt.X11GraphicsEnvironmentjava.endorsed.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/endorsedos.arch-----amd64java.io.tmpdir-----/tmpline.separator-----java.vm.specification.vendor-----Oracle Corporationos.name-----Linuxsun.jnu.encoding-----UTF-8java.library.path-----/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/libjava.specification.name-----Java Platform API Specificationjava.class.version-----52.0sun.management.compiler-----HotSpot 64-Bit Tiered Compilersos.version-----4.0.1-1-ARCHuser.home-----/home/lppuser.timezone-----java.awt.printerjob-----sun.print.PSPrinterJobfile.encoding-----UTF-8java.specification.version-----1.8java.class.path-----/home/lpp/Codes/JavaWorkSpace/Test/binuser.name-----lppjava.vm.specification.version-----1.8sun.java.command-----SystemDemojava.home-----/usr/lib/jvm/java-8-jdk/jresun.arch.data.model-----64user.language-----enjava.specification.vendor-----Oracle Corporationawt.toolkit-----sun.awt.X11.XToolkitjava.vm.info-----mixed modejava.version-----1.8.0_45java.ext.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/ext:/usr/java/packages/lib/extsun.boot.class.path-----/usr/lib/jvm/java-8-jdk/jre/lib/resources.jar:/usr/lib/jvm/java-8-jdk/jre/lib/rt.jar:/usr/lib/jvm/java-8-jdk/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jsse.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jce.jar:/usr/lib/jvm/java-8-jdk/jre/lib/charsets.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jfr.jar:/usr/lib/jvm/java-8-jdk/jre/classesjava.vendor-----Oracle Corporationfile.separator-----/java.vendor.url.bug-----http://bugreport.sun.com/bugreport/sun.io.unicode.encoding-----UnicodeLittlesun.cpu.endian-----littlesun.cpu.isalist-----取出System的Properties内容的方法二:java.runtime.name-----Java(TM) SE Runtime Environmentsun.boot.library.path-----/usr/lib/jvm/java-8-jdk/jre/lib/amd64java.vm.version-----25.45-b02java.vm.vendor-----Oracle Corporationjava.vendor.url-----http://java.oracle.com/path.separator-----:java.vm.name-----Java HotSpot(TM) 64-Bit Server VMfile.encoding.pkg-----sun.iouser.country-----USsun.java.launcher-----SUN_STANDARDsun.os.patch.level-----unknownjava.vm.specification.name-----Java Virtual Machine Specificationuser.dir-----/home/lpp/Codes/JavaWorkSpace/Testjava.runtime.version-----1.8.0_45-b14java.awt.graphicsenv-----sun.awt.X11GraphicsEnvironmentjava.endorsed.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/endorsedos.arch-----amd64java.io.tmpdir-----/tmpline.separator-----java.vm.specification.vendor-----Oracle Corporationos.name-----Linuxsun.jnu.encoding-----UTF-8java.library.path-----/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/libjava.specification.name-----Java Platform API Specificationjava.class.version-----52.0sun.management.compiler-----HotSpot 64-Bit Tiered Compilersos.version-----4.0.1-1-ARCHuser.home-----/home/lppuser.timezone-----java.awt.printerjob-----sun.print.PSPrinterJobfile.encoding-----UTF-8java.specification.version-----1.8java.class.path-----/home/lpp/Codes/JavaWorkSpace/Test/binuser.name-----lppjava.vm.specification.version-----1.8sun.java.command-----SystemDemojava.home-----/usr/lib/jvm/java-8-jdk/jresun.arch.data.model-----64user.language-----enjava.specification.vendor-----Oracle Corporationawt.toolkit-----sun.awt.X11.XToolkitjava.vm.info-----mixed modejava.version-----1.8.0_45java.ext.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/ext:/usr/java/packages/lib/extsun.boot.class.path-----/usr/lib/jvm/java-8-jdk/jre/lib/resources.jar:/usr/lib/jvm/java-8-jdk/jre/lib/rt.jar:/usr/lib/jvm/java-8-jdk/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jsse.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jce.jar:/usr/lib/jvm/java-8-jdk/jre/lib/charsets.jar:/usr/lib/jvm/java-8-jdk/jre/lib/jfr.jar:/usr/lib/jvm/java-8-jdk/jre/classesjava.vendor-----Oracle Corporationfile.separator-----/java.vendor.url.bug-----http://bugreport.sun.com/bugreport/sun.io.unicode.encoding-----UnicodeLittlesun.cpu.endian-----littlesun.cpu.isalist-----
0 0
原创粉丝点击