- 浏览: 9786 次
- 性别:
- 来自: 深圳
最新评论
这里首先要说明的是,Java并不能够直接操作底层操作系统的属性,进行设置。这里的系统属性,指的是Java运行环境变量。
在JDK与JRE在操作系统上进行安装的时候,已经对系统的各种环境信息进行辨析并记录在专门的文件里面。
虽然说Java是与平台无关的语言,但是在一些特殊操作中,还是需要对当前进行运行的平台进行判断和分析,所以这方面的操作需要了解一些。
在Java中,系统属性起到替代环境变量的作用,或者说,系统属性就是Java的环境变量,它是又一种将运行时Java程序的相关信息参数化的机制。
具体的说,系统属性是一种“键--值”对,包括属性名、属性值及其映射关系,属性名和属性值均为String类型。环境变量(Path/CLASSPATH)也属于类似的情形,但它们是平台相关的。
常规的系统属性如下(属性名--对应属性值描述):
java.version JRE版本
java.vendor JRE提供商
java.vendor.url Java提供商网址URL
java.home JDK安装路径
java.vm.specification.version JVM标准的版本
java.vm.specification.vendor JVM标准的提供商
java.vm.specification.name JVM标准的名称
java.vm.version JVM的版本
java.vm.vendor JVM的提供商
java.vm.name JVM的名称
java.specification.version JRE标准的版本
java.specification.vendor JRE标准的提供商
java.specification.name JRE 标准的名称
java.class.version Java类格式版本号
java.class.path Java类资源存储路径
java.ext.dirs 扩展路径
os.name 操作系统名称
os.arch 操作系统结构
os.version 操作系统版本
file.separator 文件分隔符("/" on UNIX)
path.separator 路径分隔符(":" on UNIX)
line.separator 换行符("\n" on UNIX)
user.name 用户名
user.home 用户home路径
user.dir 用户当前工作路径
除了这些内置的系统属性外,还可以通过在命令行中运行Java应用的时候,利用java 命令的-D 参数来加入一个自定义的系统属性:
java –D<name>=<value>
在Java中,有一个类专门用于处理属性:Properties。Properties类实现了从名字到值的映射。Properties类在java.util包中,这个类被用于以集合方式表述系统属性。
常用方法
public Enumeration propertyNames()
功能:可以返回以Enumeration类型表示的所有可用系统属性属性名
public String getProperty(String key)()
功能:获得特定系统属性的属性值
public Object setProperty(String key,String value)
功能:设置(添加)单个系统属性信息
public void load(InputStream inStream)
功能:可以实现从文件中读取属性信息
public void store(OutputStream out,String header)
功能:可以实现将系统属性信息写入文件
System类中和属性相关的功能
java.lang.System类中提供了和系统相关的功能,其中包括Properties:可以通过它的方法获得表示系统属性的Properties对象;通过指定的属性键返回对应属性值等。
常用方法
public static Properties getProperties()
功能:获得一个 Properties类的对象,其中包含了所有可用的系统属性信息
public static String getProperty(String key)
功能:获得特定系统属性的属性值
public static void setProperties(Properties props)
功能:设置系统属性信息
public static String setProperty(String key,String value)
功能:设置(添加)单个系统属性信息
下面我们来看一个系统属性的例子。
import java.util.Properties;
import java.util.Enumeration;
public class TestProperties {
public static void main(String[] args) {
Properties props = System.getProperties();
Enumeration prop_names = props.propertyNames();
while (prop_names.hasMoreElements()) {
String prop_name = (String) prop_names.nextElement();
String property = props.getProperty(prop_name);
System.out.println("property '" + prop_name + "' is '" + property
+ "'");
}
}
}
编译这个程序,用下列命令来运行这个程序:
java –Dtest=hello TestProperties
这个程序将会向控制台输出所有的系统属性,注意在这些属性中,有一个属性“test”,这个属性就是我们在执行这个应用程序的时候通过“-D”参数加入的一个属性。
在这里Properties的propertyNames()方法返回的是一个Enumeration对象,它是一个集合(Collection)类,在后面的内容中,将详细讨论这个类。
另外,除了默认的系统属性外,我们在编写应用软件时候,还可以把与应用相关的一些属性内容,写在专门的属性文件中,供应用程序进行读取使用,方便以后软件的运行维护,统一管理。
我们来看一个属性文件的例子:
FileName = c:/test/MyFile.txt
VirtualPath = myApp/
在这个属性文件中,设置了两个属性:“FileName”和“VritualPath”以及它们的相应的值。
在属性文件中设定属性后,可以在Java应用中使用类Properties的方法getProperty()读取这些设置在属性文件中的属性。
下面是一个保存了属性的文本文件,它用于保存连接数据库的一些属性配置:
oracle_url = jdbc:oracle:thin:@localhost:1521:O920
oracle_name = O920
oracle_user = scott
oracle_pwd = tiger
file_path = c:\\cctvfiles\\
virtual_path = examples/
这是一个属性文件的文件内容,其中定义了6个属性以及对应的属性值,它们以“名=值”的名值对形式存在,每行表示一个属性。
import java.util.*;
import java.io.*;
public class ReadPro {
private String oracle_url, oracle_name, oracle_user, oracle_pwd;
private String file_path, virtual_path;
public ReadPro() {
try {
Properties props = new Properties();
File f = new File("C:\\OracleSetup.properties");
FileInputStream in = new FileInputStream(f);
props.load(in);
in.close();
oracle_url = props.getProperty("oracle_url");
oracle_name = props.getProperty("oracle_name");
oracle_user = props.getProperty("oracle_user");
oracle_pwd = props.getProperty("oracle_pwd");
file_path = props.getProperty("file_path");
virtual_path = props.getProperty("virtual_path");
} catch (IOException e) {
System.out.println(e);
}
}
public String getOracle_url() {
return oracle_url;
}
public String getOracle_name() {
return oracle_name;
}
public String getOracle_user() {
return oracle_user;
}
public String getOracle_pwd() {
return oracle_pwd;
}
public String getFile_path() {
return file_path;
}
public String getVirtual_path() {
return virtual_path;
}
public static void main(String args[]) {
ReadPro rp = new ReadPro();
System.out.println(rp.getOracle_user());
}
}
这个程序用于从属性文件中读取设置好的属性,这边用到了Properties类的load()方法,这个方法将指定的属性文件流装载到内存中来对它进行处理。通过Properties的getProperty()方法来读取指定名称的属性对应的值。
在JDK与JRE在操作系统上进行安装的时候,已经对系统的各种环境信息进行辨析并记录在专门的文件里面。
虽然说Java是与平台无关的语言,但是在一些特殊操作中,还是需要对当前进行运行的平台进行判断和分析,所以这方面的操作需要了解一些。
在Java中,系统属性起到替代环境变量的作用,或者说,系统属性就是Java的环境变量,它是又一种将运行时Java程序的相关信息参数化的机制。
具体的说,系统属性是一种“键--值”对,包括属性名、属性值及其映射关系,属性名和属性值均为String类型。环境变量(Path/CLASSPATH)也属于类似的情形,但它们是平台相关的。
常规的系统属性如下(属性名--对应属性值描述):
java.version JRE版本
java.vendor JRE提供商
java.vendor.url Java提供商网址URL
java.home JDK安装路径
java.vm.specification.version JVM标准的版本
java.vm.specification.vendor JVM标准的提供商
java.vm.specification.name JVM标准的名称
java.vm.version JVM的版本
java.vm.vendor JVM的提供商
java.vm.name JVM的名称
java.specification.version JRE标准的版本
java.specification.vendor JRE标准的提供商
java.specification.name JRE 标准的名称
java.class.version Java类格式版本号
java.class.path Java类资源存储路径
java.ext.dirs 扩展路径
os.name 操作系统名称
os.arch 操作系统结构
os.version 操作系统版本
file.separator 文件分隔符("/" on UNIX)
path.separator 路径分隔符(":" on UNIX)
line.separator 换行符("\n" on UNIX)
user.name 用户名
user.home 用户home路径
user.dir 用户当前工作路径
除了这些内置的系统属性外,还可以通过在命令行中运行Java应用的时候,利用java 命令的-D 参数来加入一个自定义的系统属性:
java –D<name>=<value>
在Java中,有一个类专门用于处理属性:Properties。Properties类实现了从名字到值的映射。Properties类在java.util包中,这个类被用于以集合方式表述系统属性。
常用方法
public Enumeration propertyNames()
功能:可以返回以Enumeration类型表示的所有可用系统属性属性名
public String getProperty(String key)()
功能:获得特定系统属性的属性值
public Object setProperty(String key,String value)
功能:设置(添加)单个系统属性信息
public void load(InputStream inStream)
功能:可以实现从文件中读取属性信息
public void store(OutputStream out,String header)
功能:可以实现将系统属性信息写入文件
System类中和属性相关的功能
java.lang.System类中提供了和系统相关的功能,其中包括Properties:可以通过它的方法获得表示系统属性的Properties对象;通过指定的属性键返回对应属性值等。
常用方法
public static Properties getProperties()
功能:获得一个 Properties类的对象,其中包含了所有可用的系统属性信息
public static String getProperty(String key)
功能:获得特定系统属性的属性值
public static void setProperties(Properties props)
功能:设置系统属性信息
public static String setProperty(String key,String value)
功能:设置(添加)单个系统属性信息
下面我们来看一个系统属性的例子。
import java.util.Properties;
import java.util.Enumeration;
public class TestProperties {
public static void main(String[] args) {
Properties props = System.getProperties();
Enumeration prop_names = props.propertyNames();
while (prop_names.hasMoreElements()) {
String prop_name = (String) prop_names.nextElement();
String property = props.getProperty(prop_name);
System.out.println("property '" + prop_name + "' is '" + property
+ "'");
}
}
}
编译这个程序,用下列命令来运行这个程序:
java –Dtest=hello TestProperties
这个程序将会向控制台输出所有的系统属性,注意在这些属性中,有一个属性“test”,这个属性就是我们在执行这个应用程序的时候通过“-D”参数加入的一个属性。
在这里Properties的propertyNames()方法返回的是一个Enumeration对象,它是一个集合(Collection)类,在后面的内容中,将详细讨论这个类。
另外,除了默认的系统属性外,我们在编写应用软件时候,还可以把与应用相关的一些属性内容,写在专门的属性文件中,供应用程序进行读取使用,方便以后软件的运行维护,统一管理。
我们来看一个属性文件的例子:
FileName = c:/test/MyFile.txt
VirtualPath = myApp/
在这个属性文件中,设置了两个属性:“FileName”和“VritualPath”以及它们的相应的值。
在属性文件中设定属性后,可以在Java应用中使用类Properties的方法getProperty()读取这些设置在属性文件中的属性。
下面是一个保存了属性的文本文件,它用于保存连接数据库的一些属性配置:
oracle_url = jdbc:oracle:thin:@localhost:1521:O920
oracle_name = O920
oracle_user = scott
oracle_pwd = tiger
file_path = c:\\cctvfiles\\
virtual_path = examples/
这是一个属性文件的文件内容,其中定义了6个属性以及对应的属性值,它们以“名=值”的名值对形式存在,每行表示一个属性。
import java.util.*;
import java.io.*;
public class ReadPro {
private String oracle_url, oracle_name, oracle_user, oracle_pwd;
private String file_path, virtual_path;
public ReadPro() {
try {
Properties props = new Properties();
File f = new File("C:\\OracleSetup.properties");
FileInputStream in = new FileInputStream(f);
props.load(in);
in.close();
oracle_url = props.getProperty("oracle_url");
oracle_name = props.getProperty("oracle_name");
oracle_user = props.getProperty("oracle_user");
oracle_pwd = props.getProperty("oracle_pwd");
file_path = props.getProperty("file_path");
virtual_path = props.getProperty("virtual_path");
} catch (IOException e) {
System.out.println(e);
}
}
public String getOracle_url() {
return oracle_url;
}
public String getOracle_name() {
return oracle_name;
}
public String getOracle_user() {
return oracle_user;
}
public String getOracle_pwd() {
return oracle_pwd;
}
public String getFile_path() {
return file_path;
}
public String getVirtual_path() {
return virtual_path;
}
public static void main(String args[]) {
ReadPro rp = new ReadPro();
System.out.println(rp.getOracle_user());
}
}
这个程序用于从属性文件中读取设置好的属性,这边用到了Properties类的load()方法,这个方法将指定的属性文件流装载到内存中来对它进行处理。通过Properties的getProperty()方法来读取指定名称的属性对应的值。
发表评论
-
Demo
2014-10-19 21:10 348package com.huawei.crs.dataswi ... -
Java 并发编程实战
2014-05-30 08:11 371Java 并发编程实战 -
疯狂Java讲义第二版代码
2014-05-30 00:38 684疯狂Java讲义第二版代码 -
问题:为什么线程名称为Thread-1的线程没有被成功创建?
2014-05-15 21:05 462为什么线程名称为Thread-1的线程没有被成功创建? pa ... -
JavaSE_85_String类详解
2014-04-23 01:52 293在Java中,使用String和StringBuffer来表示 ... -
JavaSE_84_Math类详解
2014-04-23 01:51 502在实际编程中,大量的数据运算是不可避免的。在Java类库中,已 ... -
JavaSE_83_IO操作
2014-04-23 01:50 359多数应用程序在运行过 ... -
JavaSE_81_Java异常
2014-04-23 01:48 385没有人敢保证说它写的程序永远没有错。即使写的程序没有错,也不要 ... -
JavaSE0006_理解面想对象程序设计
2014-03-31 23:48 0Java SE 第八讲 1、 面向对象程序设计(Object ... -
JavaSE0005_Java流程控制语句
2014-03-31 22:36 276Java SE 第四节 流程控制语句 Flow Contr ... -
JavaSE0004_Java运算符
2014-03-31 22:35 403Java SE 第三讲:运算符 O ... -
JavaSE0003_Java数据类型
2014-03-31 22:34 370Java SE 第二讲: Data Type 内容提要: ... -
JavaSE0002_Java入门
2014-03-31 22:29 217Java SE 第一讲: Java SE:Java Stan ... -
JavaSE0001_Java体系
2014-03-31 22:27 394JAVA知识体系 j2se 1.Java语 ...
相关推荐
javase_day04_v1_pm_all.zip 基础代码,希望好好学习
JavaSE_8_GUI编程JavaSE_8_GUI编程JavaSE_8_GUI编程JavaSE_8_GUI编程
JavaSE_J2SE_5.0_API_中文文档_html格式
JavaSE_Android精华版-----中文文档API,JavaSE_Android精华版-----中文文档API
02开发工具Eclipse_旺旺老师JavaSE_final02开发工具Eclipse_旺旺老师JavaSE_final
JavaSE__数组及常用算法.ppt
JavaSE_01 源代码 可以参考我上传的一个javase文档!
javase_作业_8.继承作业答案1
VIP09_JavaSE_JavaIO_File_day0307-1.rar
JavaSE_柴林燕_阶段2.docx
基于JAVA SWING的机票预订管理系统
JavaSE的编程资料,包括基础,集合框架,IO流等等
尚硅谷_JavaSE_第12章_集合与泛型_扩展练习_附带参考答案.md
JavaSE_11集合框架_旺旺老师.pdf
File类,输入和输出流,字节-字符转换流,打印流PrintStream,对象序列化
JavaSE_note 学习过程的笔记,喜欢的带走吧!JavaSE_note 学习过程的笔记,喜欢的带走吧! JavaSE_note 学习过程的笔记,喜欢的带走吧!
该资源是学习JavaSE基础时,必不可少的帮助文档,此文档是中文版。适合初学者,适合有经验者,遇到断网,脑子断路就要用到它了。
尚硅谷_陈鑫_JavaSE_【Java概述、环境搭建、标识符、变量、基本数据类型】.md
JavaSE_复习笔记(用笔记软件eDiary打开).edf
JavaSE编程 API文档2017版英文文档 提供常用JavaSE的API方便查询