取出System的Properties内容的方法

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 stub
		Properties 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 Environment
sun.boot.library.path-----/usr/lib/jvm/java-8-jdk/jre/lib/amd64
java.vm.version-----25.45-b02
java.vm.vendor-----Oracle Corporation
java.vendor.url-----http://java.oracle.com/
path.separator-----:
java.vm.name-----Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg-----sun.io
user.country-----US
sun.java.launcher-----SUN_STANDARD
sun.os.patch.level-----unknown
java.vm.specification.name-----Java Virtual Machine Specification
user.dir-----/home/lpp/Codes/JavaWorkSpace/Test
java.runtime.version-----1.8.0_45-b14
java.awt.graphicsenv-----sun.awt.X11GraphicsEnvironment
java.endorsed.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/endorsed
os.arch-----amd64
java.io.tmpdir-----/tmp
line.separator-----

java.vm.specification.vendor-----Oracle Corporation
os.name-----Linux
sun.jnu.encoding-----UTF-8
java.library.path-----/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.specification.name-----Java Platform API Specification
java.class.version-----52.0
sun.management.compiler-----HotSpot 64-Bit Tiered Compilers
os.version-----4.0.1-1-ARCH
user.home-----/home/lpp
user.timezone-----
java.awt.printerjob-----sun.print.PSPrinterJob
file.encoding-----UTF-8
java.specification.version-----1.8
java.class.path-----/home/lpp/Codes/JavaWorkSpace/Test/bin
user.name-----lpp
java.vm.specification.version-----1.8
sun.java.command-----SystemDemo
java.home-----/usr/lib/jvm/java-8-jdk/jre
sun.arch.data.model-----64
user.language-----en
java.specification.vendor-----Oracle Corporation
awt.toolkit-----sun.awt.X11.XToolkit
java.vm.info-----mixed mode
java.version-----1.8.0_45
java.ext.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/ext:/usr/java/packages/lib/ext
sun.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/classes
java.vendor-----Oracle Corporation
file.separator-----/
java.vendor.url.bug-----http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding-----UnicodeLittle
sun.cpu.endian-----little
sun.cpu.isalist-----
取出System的Properties内容的方法二:
java.runtime.name-----Java(TM) SE Runtime Environment
sun.boot.library.path-----/usr/lib/jvm/java-8-jdk/jre/lib/amd64
java.vm.version-----25.45-b02
java.vm.vendor-----Oracle Corporation
java.vendor.url-----http://java.oracle.com/
path.separator-----:
java.vm.name-----Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg-----sun.io
user.country-----US
sun.java.launcher-----SUN_STANDARD
sun.os.patch.level-----unknown
java.vm.specification.name-----Java Virtual Machine Specification
user.dir-----/home/lpp/Codes/JavaWorkSpace/Test
java.runtime.version-----1.8.0_45-b14
java.awt.graphicsenv-----sun.awt.X11GraphicsEnvironment
java.endorsed.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/endorsed
os.arch-----amd64
java.io.tmpdir-----/tmp
line.separator-----

java.vm.specification.vendor-----Oracle Corporation
os.name-----Linux
sun.jnu.encoding-----UTF-8
java.library.path-----/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.specification.name-----Java Platform API Specification
java.class.version-----52.0
sun.management.compiler-----HotSpot 64-Bit Tiered Compilers
os.version-----4.0.1-1-ARCH
user.home-----/home/lpp
user.timezone-----
java.awt.printerjob-----sun.print.PSPrinterJob
file.encoding-----UTF-8
java.specification.version-----1.8
java.class.path-----/home/lpp/Codes/JavaWorkSpace/Test/bin
user.name-----lpp
java.vm.specification.version-----1.8
sun.java.command-----SystemDemo
java.home-----/usr/lib/jvm/java-8-jdk/jre
sun.arch.data.model-----64
user.language-----en
java.specification.vendor-----Oracle Corporation
awt.toolkit-----sun.awt.X11.XToolkit
java.vm.info-----mixed mode
java.version-----1.8.0_45
java.ext.dirs-----/usr/lib/jvm/java-8-jdk/jre/lib/ext:/usr/java/packages/lib/ext
sun.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/classes
java.vendor-----Oracle Corporation
file.separator-----/
java.vendor.url.bug-----http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding-----UnicodeLittle
sun.cpu.endian-----little
sun.cpu.isalist-----
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值