`
liuwei1981
  • 浏览: 753175 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:156327
社区版块
存档分类
最新评论

84.系统属性操作

 
阅读更多

这里首先要说明的是,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()方法来读取指定名称的属性对应的值。

 

 

分享到:
评论

相关推荐

    9异常,系统属性,Math类.rar

    系统属性是指与用户程序相关的操作系统配置信息以及软件信息。通常与用户程序相关的属性关键字包括:  ●file.separator:文件分隔符,Windows环境下为“",Unix环境下为“/”;  ●user.home:用户主目录;  ...

    windows操作系统中的系统属性.docx

    windows操作系统中的系统属性.docx

    操作系统-操作系统安全与保护.pdf

    1 第七章 操作系统安全与保护 计算机和操作系统 面临的安全威胁 安全操作系统的设计原则 硬件和软件安全机制 访问控制矩阵 恶意程序威胁 加密机制 2 计算机系统的脆弱 数据可访问及随意修改。 存储数据密度高,...

    修改文件系统属性和隐藏属性

    修改文件系统属性和隐藏属性 @echo off title 修改文件系统属性和隐藏属性工具 color f0 mode con: cols=41 lines=25 :start cls ECHO ================================ ECHO 请选择要进行的操作,然后按...

    ASP.NET通用权限管理系统源代码(含文档、数据库)

    2.操作按钮 3.角色管理 4.部门管理 5.用户管理(用户权限) 6.用户组管理(设置成员,用户组权限) 7.系统配置(动态配置系统参数) 8.附加属性(自定义属性) 9.系统日志(异常记录) 10.数据库备份/还原 11.资源...

    pinjian.rar_文件属性_文件管理系统

    用户进入系统主界面,其包括系统的各种操作,像文件操作,目录操作,帮助等操作。 文件操作包括:文件的录入,查询,打开,删除.文件属性的修改等。 系统采用自动加入技术,用户只需取得文件所在的位置,系统将自动...

    linux操作系统实验文件和目录操作报告.pdf

    linux操作系统实验文件和目录操作报告.pdf

    精通WindowsAPI.pdf

    1.2.5 Visual Studio专业版或团队系统版...................................................................22 1.2.6 使用图形化IDE建立工程、进行编译...........................................................

    操作系统安全.pptx

    操作系统安全缺陷与内容 操作系统是大型数据库系统的运行平台 UNIX 、Linux、Windows Server 2000/2003/2008等 这些操作系统都是符合C2级安全级别的操作系统 7.1.1操作系统安全概述 操作系统安全全文共9页,当前为第...

    修改系统属性和隐藏属性

    将文件拉到此批处理图标上,按提示操作可修改文件的系统属性和隐藏属性

    操作系统原理 计算机

    CH1 操作系统概论............................................................................................................................1 1.1 操作系统概观.............................................

    获取XP 操作系统的属性页

    获取XP 操作系统的属性页,获取属性窗体中的所有信息!

    微软 C#语言参考 CHM格式

    14.3 枚举数值和操作... 242 15. 代表... 243 15.1 代表声明... 243 15.1.1 可合并的代表类型... 244 15.2 代表实例化... 244 15.3 多点传送代表... 244 15.4 代表调用... 244 16. 异常... 245 16.1 异常的产生... ...

    starteam用户指南

    为其它操作系统文件创建 StarTeam 文件夹 . . . . . 63 使用备选工作文件夹. . . . . . . . . . . . . . . . . 64 更改工作文件夹 . . . . . . . . . . . . . . . . . . . 65 使用视图配置文件中的文件夹属性. . . ....

    Android学习系列教程实例.pdf

    目录 Android 学习文档总结 ................... 1 DevDiv 推荐资源 ........................ 2 Windows 8 .............................................................5.5. 自定义控件属性 ........................

    修改android系统属性.zip

    操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络...

    论文研究-一种并行的信息系统属性约简算法.pdf

    属性约简是信息系统中的一个重要操作,而分类是属性约简的基础,且直接在大数据集上进行属性约简往往存在效率低下的问题。故以分类为基础提出了一种基于信息熵的信息系统并行属性约简算法。该算法通过信息熵的计算,...

    基于多属性决策的嵌入式操作系统识别技术.doc

    基于多属性决策的嵌入式操作系统识别技术.doc

    5.嵌入式操作系统-机房管理系统.rar

    b) 根据登录用户显示欢迎对象、根据系统时间显示欢迎内容个性化的欢迎信息,有系统初始化、系统管理和退出三个菜单项操作提示菜单,能显示当前上课的具体时间(教学第几周、星期几第几节)和系统状态提示信息。...

Global site tag (gtag.js) - Google Analytics