Java资源网

| JAVA基础 | 环境配置 | JDBC | 线程技术 | Socket编程 | JavaMail | JAVA与XML | 设计模式 | 技术新闻 | Java认证 | 程序人生 软件下载
| JSP&Servlet | Spring | Struts | Hibernate | JBuilder | Eclipse | WebService | EJB技术 | J2ME开发 | 应用服务器 | JXTA | Ajax
Articles search文章搜索
   关键字:
   类 别:
       
New download 最新下载
· [组件]HTML Parser 1.5
· [教程]WebSphere Studio应用教程
· [组件]JDom 1.0
· [工具]Junit3.8.1
· [教程]EJB编程及J2EE系统架构和设计
· [教程]EJB教程
· [教程]J2EE Tutorial中文版
· [教程]Java编程思想2(英文)
· [教程]java编程思想(完整版)
· [教程]Java网络编程
New articles 最新文章
· 设计移动 Web 服务
· 解析XML的时候完全忽略DTD
· 理解XML Schema XML Schema 初步
· 标签库的深入研究
· 提升JSP应用程序的七大绝招
· 如何使用JDOM对XML文件进行操作
· 处理XML字符串中特殊字符
· 利用Digester把XML转换成为Java对象
· 使用WebService 和RMI远程协作
· 使用Axis开发Web Service程序
Articles top 热门文章
· Eclipse基础--plugin插件安装(6644)
· eclipse+tomcat+lomboz的安装配置说明(4774)
· Java程序员就业前景(4584)
· Windows下JAVA环境变量的设置祥解(3788)
· Tomcat下JSP、Servlet和JavaBean环境的配置(3716)
· 使用links方式安装Eclipse插件(3698)
· 一个老程序员的心理话(3533)
· linux下jdk的安装与配置(3459)
· 初学者入门:Structs中基本配置入门(3334)
· Eclipse 运行命令行参数大全(3084)
您的位置:首页>>JAVA基础>>教你如何在Java的应用过程中获取系统属性
教你如何在Java的应用过程中获取系统属性
2005-08-16   来源:Java资源网  作者:Java资源网
   Java语言以其面向对象、跨平台、可移植性好、安全性高等优点,受到众多编程人员的青睐,越来越多的人将其作为应用软件开发语言的首选。

在Java应用程序运行时,特别是需要在跨平台工作环境下运行时,需要确定操作系统类型、用户JDK版本和用户工作目录等随工作平台变化的信息,来保证程序正确运行。一般情况下,可以利用JDK提供的系统属性类(Properties)中的方法,快速地获取工作环境信息。

另外,程序开发人员还可以定义与应用程序相关的系统属性文件,在用户程序执行过程中动态地加载程序员定义的属性文件来控制程序运行。

本文通过对系统属性类的分析,结合实际例子介绍如何定义系统属性文件,并讨论安全策略文件的定义。

在应用程序开始执行时,程序首先读取系统的默认属性。如果定义了用户属性文件,则应用程序加载该属性文件。程序运行过程中可以根据执行情况动态地修改属性定义,并在程序结束运行前,保存属性文件。

获取属性的方法:

contains(Object value)、containsKey(Object key):如果给定的参数或属性关键字在属性表中有定义,该方法返回True,否则返回False;

●getProperty(String key)、getProperty(String key, String default):根据给定的属性关键字获取关键字值;

●list(PrintStream s)、list(PrintWriter w): 在输出流中输出属性表内容;

●size():返回当前属性表中定义的属性关键字个数。

设置属性的方法:

●put(Object key, Object value) :向属性表中追加属性关键字和关键字的值;

●remove(Object key) :从属性表中删除关键字。

获取系统属性

系统属性是指与用户程序相关的操作系统配置信息以及软件信息。通常与用户程序相关的属性关键字包括:

●file.separator : 文件分隔符, Windows环境下为“\",Unix环境下为“/”;

●user.home :用户主目录;

●java.home :Java实时运行环境的安装目录;

●java.ext.dirs :JDK的安装目录;

●os.name :操作系统名称;

●user.name :用户登录名称;

●os.version :操作系统版本;

●path.separator :当前操作系统的路径分隔符;

●user.dir :当前用户程序所在目录。

下面结合例子说明获取系统属性的方法:


/*getSystemProperties.java*/ 
import java.util.Properties;  
public class getSystemProperties 

public static void main(String args[]) 
{  
//通过获得系统属性构造属性类 prop 
Properties prop = new Properties(  
System.getProperties() ); 
//在标准输出中输出系统属性的内容 
prop.list(System.out); 

//根据获取的系统属性确定程序执行流程 
…… 
}
 



上述程序执行后,在Windows环境中产生类似如下的输出: 


user.home=C:\WIN95 
java.home=D:\JDK1.2\JRE 
java.ext.dirs=D:\JDK1.2 
os.name=Windows 95 
user.name=Office 
java.vm.name=Classic VM 
os.version=4.10 
path.separator=; 
file.separator=\ 
user.dir=D:\JavaTest
 



属性文件的操作方法 

Java程序开发人员可以通过定义属性文件来设置程序运行的参数。属性文件是程序外部文件,在应用程序初始运行时,可以通过读取属性文件来获取有关程序运行的参数。例如,在程序运行时需要在程序外部控制程序的执行流程,这时可以通过定义属性文件的方法达到目的。下面结合例子说明属性文件的操作方法: 


/*PropertyFile.java*/ 
//引入相关类 
import java.io.*; 
import java.util.Properties; 
public class PropertyFile 

//定义文件输入和输出流 
static FileInputStream fis; 
static FileOutputStream fos; 
public static void main(String args[]) 
{  
//生成新的属性对象 
Properties prop = new Properties(); 
try 
{  
//生成文件输入和输出流,
输入流指向用户已经定义的属性文件,
输出流指向由应用程序新定义的属性文件 
fis = new FileInputStream 
(“firstProp.txt”); 
fos = new FileOutputStream 
(“secondProp.txt”); 

catch(FileNotFoundException e) 

System.out.println
(“Cannot create the file stream”); 

try 

//从输入文件加载系统属性 
prop.load(fis); 
//根据程序执行情况更改属性关键字的值 
prop.put(“Switch”,“1”); 
//输出新属性文件secondProp.txt 
prop .save 
( fos ,“-- a new properties file-”); 

catch(IOException e) 

System.out.println
(“Exception in repleace the keyword”); 


}
 



在程序执行之前,用户必须首先定义属性文件firstProp.txt,该文件内容如下: 


Switch= 0 
Version= 1.0 
Directory= JavaTest
 



程序运行后,输出新的属性文件secondProp.txt,该文件内容如下(注意观察两个文件关键字Switch内容的区别): 


#--a new properties file-- 
#Sun Mar 11 21:22:40 CST 2001 
Switch= 1 
Version= 1.0 
Directory= JavaTest
 



从上例可以看出,通过JDK提供的属性类Properties可以方便地在程序外部对应用程序的执行流程进行控制,从而简化了编程难度,使程序流程可控性更好。 

安全策略文件 

Java提供的应用程序环境的安全策略,使得不同的代码对系统资源拥有不同的访问许可。Java应用程序安全策略由Policy对象来表达,通过定义安全策略文件来实现。Java1.2的安全策略文件分为三级:系统安全策略文件、用户安全策略文件和缺省安全策略文件。 

当Java应用程序启动后,按照先后顺序加载安全策略内容。下面结合典型的安全策略文件内容对安全策略文件的定义进行说明: 


grant 
{  
//对系统和用户目录设置“读”的权限 
permission java.util.PropertyPermission
“user.dir”, 
“read”; 
permission java.util.PropertyPermission
“user.home”,“read”; 
permission java.util.PropertyPermission
“java.home”,“read”; 
permission java.util.PropertyPermission
“java.class. 
path”,“read”; 
permission java.util.PropertyPermission
“user.name”,“read”; 
//其他安全策略内容 
};
 



上述安全策略文件定义了应用程序对用户目录、用户登录目录、JDK安装目录、用户名称等系统内容具有读的权限。 
  --相关文章--
· J2EE全面介绍(二) (2007-04-13)
· 项目经验二则:读取war包中的文件及Ant使用中的OutOfMemoryError解决 (2007-04-13)
· 走向J2EE,漫长的道路 (2007-04-13)
· 步入J2EE架构和过程(2) (2007-04-13)
· 步入J2EE架构和过程(1) (2007-04-13)
· 方兴未艾的CORBA (2007-04-13)

版权所有©2005-2006 JAVA资源网 渝ICP备05007591号 虚拟主机 | 关于我们 | 联系方式 | 广告业务 | 网站地图 | 友情链接