要获取系统属性,java提供了System类,该类位于java.lang包中。System类它不能被实例化,其中的方法全部为静态方法。

  要获取系统属性,System类中提供了getProperty方法。先看我写的一个简单例子,然后再做具体解释。代码如下:

 

class GetProps 
  { 
  public static void main(String[] args) 
  { 
  String s; 
  try 
  { 
  //获得系统名称 
  s = System.getProperty("os.name", "未定义"); 
  System.out.println("当前操作系统是: "+s); 
  //获得JVM版本 
  s = System.getProperty("java.version", "未定义"); 
  System.out.println("当前java虚拟机版本是: " + s); 
  //获得用户缺省路径 
  s = System.getProperty("user.home", "未定义"); 
  System.out.println("当前用户主目录: " + s); 
  //获得JVM缺省路径 
  s = System.getProperty("java.home", "未定义"); 
  System.out.println("JRE安装目录是: "+s); 
  } 
  catch(SecurityException se) 
  { 
  se.printStackTrace(); 
  } 
  catch (Exception e) 
  { 
  e.printStackTrace(); 
  } 
  } 
  } 
  编译运行结果如下: 
  E:/gongcheng>javac GetProps.java 
  E:/gongcheng>java GetProps

  当前操作系统是: Windows XP

  当前java虚拟机版本是: 1.5.0_03

  当前用户主目录: C:/Documents and Settings/zhaopeixin

  JRE安装目录是: C:/Java/jdk1.5.0_03/jre

  运行结果没有任何错误,因为这个例子实在是太简单了,几乎不需要多解释。其中getProperty方法的解释如下(API中都有,我只负责copy过来):

  参数:

  key - 系统属性的名称。

  def - 默认值。 

 返回:

  系统属性的字符串值,如果没有带有此键的属性,则返回默认值。

  另外,我怎么知道第一个参数key是什么呢?不要担心,这个在API中都有,如下表:

  键 相关值的描述

  

java.version Java 运行时环境版本 
  java.vendor Java 运行时环境供应商 
  java.vendor.url Java 供应商的 URL 
  java.home Java 安装目录 
  java.vm.specification.version Java 虚拟机规范版本 
  java.vm.specification.vendor Java 虚拟机规范供应商 
  java.vm.specification.name Java 虚拟机规范名称 
  java.vm.version Java 虚拟机实现版本 
  java.vm.vendor Java 虚拟机实现供应商 
  java.vm.name Java 虚拟机实现名称 
  java.specification.version Java 运行时环境规范版本 
  java.specification.vendor Java 运行时环境规范供应商 
  java.specification.name Java 运行时环境规范名称 
  java.class.version Java 类格式版本号 
  java.class.path Java 类路径 
  java.library.path 加载库时搜索的路径列表 
  java.io.tmpdir 默认的临时文件路径 
  java.compiler 要使用的 JIT 编译器的名称 
  java.ext.dirs 一个或多个扩展目录的路径 
  os.name 操作系统的名称 
  os.arch 操作系统的架构 
  os.version 操作系统的版本 
  file.separator 文件分隔符(在 UNIX 系统中是“/”) 
  path.separator 路径分隔符(在 UNIX 系统中是“:”) 
  line.separator 行分隔符(在 UNIX 系统中是“/n”) 
  user.name 用户的账户名称 
  user.home 用户的主目录 
  user.dir 用户的当前工作目录