Java中System对象的使用

关于Java中使用的System对象,我们经常使用的是Systme.out.print ,而且也仅仅知道这是一个可以在控制台打印出语句,而没有去深究它的内在实现原理。下面我就详细地介绍System对象。 

1.JDK中有如下定义:.The System class contains several useful class fields and methods. It cannot be instantiated. 
也就是说System对象是不能被实例化的,只能通过调用它的属性和方法来使用它。 

2.System中的属性 Systme.in 是InputStream类型的,可以接受控制台输入的信息; System.out 和 System.err 都是PrintStream类型的 ,可以在控制台输出信息。 

3.System.getProperties() 返回的是Properties类型的对象,而返回的信息是Java虚拟机启动过程中所要加载的环境配置信息。可以通过下面的代码获取和输出信息,由于Properties是HashTable的一个子类,因此可以通过Map方法取出该集合中的元素 


Java代码 

package javase.day18;  
  
import java.util.Properties;  
  
public class SystemDemo {  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        Properties prop=System.getProperties();  
        for(Object key:prop.keySet()){  
            String keyStr=(String)key;  
            String value=prop.getProperty(keyStr);  
            System.out.println(keyStr+" --- "+value);  
        }  
    }  
}  

结果:

控制台输出系统环境配置信息:

java.runtime.name --- Java(TM) SE Runtime Environment
sun.boot.library.path --- C:\Java\developerEnv\Java\jdk1.6.0_16\jre\bin
java.vm.version --- 14.2-b01
java.vm.vendor --- Sun Microsystems Inc.
java.vendor.url --- http://java.sun.com/
path.separator --- ;
java.vm.name --- Java HotSpot(TM) Client VM
file.encoding.pkg --- sun.io
sun.java.launcher --- SUN_STANDARD
user.country --- CN
sun.os.patch.level --- Service Pack 3
java.vm.specification.name --- Java Virtual Machine Specification
user.dir --- D:\workspace\BlackHorse
java.runtime.version --- 1.6.0_16-b01
java.awt.graphicsenv --- sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs --- C:\Java\developerEnv\Java\jdk1.6.0_16\jre\lib\endorsed
os.arch --- x86
java.io.tmpdir --- C:\DOCUME~1\CHENGR~1\LOCALS~1\Temp\
line.separator --- 
......

......

......

使用以下代码也可以使控制台输出系统环境配置信息:

public class SystemDemo {
	public static void main(String[] args) {
		System.getProperties().list(System.out);
	}
}

4.可以通过System对象在系统中自定义一些特有的信息: 

System.setProperty(myKey , myValue); 


另外需要注意的一点是: 所谓的 system porperty,system 指的是 JRE (runtime)system,不是指 OS。 
System.setProperty("net.jxta.tls.principal", "client"); 
System.setProperty("net.jxta.tls.password", "password"); 
System.setProperty("JXTA_HOME",System.getProperty("JXTA_HOME","client")); 
可以利用系统属性来加载多个驱动

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值