`
androidssh
  • 浏览: 114858 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java中获取系统属性

    博客分类:
  • java
阅读更多
   Java语言以其面向对象、跨平台、可移植性好、安全性高等优点,受到众多编程人员的青睐,越来越多的人将其作为应用软件开发语言的首选。
  在Java应用程序运行时,特别是需要在跨平台工作环境下运行时,需要确定操作系统类型、用户JDK版本和用户工作目录等随工作平台变化的信息,来保证程序正确运行。一般情况下,可以利用JDK提供的系统属性类(Properties)中的方法,快速地获取工作环境信息。另外,程序开发人员还可以定义与应用程序相关的系统属性文件,在用户程序执行过程中动态地加载程序员定义的属性文件来控制程序运行。
  本文通过对系统属性类的分析,结合实际例子介绍如何定义系统属性文件,并讨论安全策略文件的定义。

  属性类 Java Properties类的继承关系如下:

  java.lang.Object

  +--java.util.Dictionary

  +--java.util.Hashtable

  +--java.util.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对象来表达,通过定义安全策略文件来实现。Java 1.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安装目录、用户名称等系统内容具有读的权限。
分享到:
评论

相关推荐

    在Java中获取系统属性.doc

    在Java编程中,获取系统属性是一项重要的任务,它允许开发者获取关于操作系统、JVM以及用户环境的详细信息。Java提供了一个名为`Properties`的类,它继承自`Dictionary`,进一步扩展了`Hashtable`,用于处理键值对,...

    在Java中获取系统属性

    ### 在Java中获取系统属性详解 #### 一、引言 在Java开发中,了解如何获取和使用系统属性是非常重要的。这些系统属性包含了与运行环境相关的各种信息,比如操作系统名称、用户目录等,这对于开发跨平台的应用程序...

    java反射,获取所有属性、方法以及List集合类

    在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建对象、获取类信息等。本篇文章将深入探讨如何使用Java反射来获取一个类的所有属性、方法,并处理List集合类。 首先,让我们了解...

    详解Java获取环境变量及系统属性的方法

    总之,Java中获取环境变量及系统属性的方法是系统级别的操作,对于开发和调试Java应用程序具有重要作用。合理地使用这些方法,能够帮助我们更好地了解和配置应用程序运行环境,以确保应用的正确执行和高效运行。

    java获取系统参数

    在上述代码中,`main`方法展示了如何遍历并打印所有系统属性。首先通过`System.getProperties()`获取属性列表,然后通过`Properties`对象的`stringPropertyNames()`方法获取属性键的集合,再通过迭代器遍历键值对,...

    java获取当前系统信息

    本文将深入解析如何利用Java内置的`System`类和`Properties`对象来获取一系列关键的系统属性,包括Java运行时环境、操作系统和用户信息等。 ### Java运行时环境信息 首先,通过`System.getProperties()`方法,我们...

    java读取pdf文件属性

    在Java中读取PDF文件属性主要依赖于开源库PDFBox。PDFBox是一个用于处理PDF文档的开源库,它提供了读取、写入、修改PDF文档的功能,而不仅仅局限于文本的提取。PDFBox的API设计简洁明了,易于上手,因此在Java开发...

    在父类获取子类属性

    在Java中,一个类(子类)可以继承另一个类(父类),通过关键字`extends`来实现。这样,子类就拥有了父类的所有非私有(public和protected)成员,包括字段(属性)和方法。但是,子类可能会添加自己的特有属性,...

    关于java获取操作系统信息

    通过上述内容可以看出,Java提供了丰富的系统属性来帮助开发者获取运行时环境的相关信息。这些信息对于调试代码、适配不同操作系统以及优化程序性能都极为重要。开发人员可以根据需要选择合适的系统属性来获取所需的...

    java获取系统参数规格

    ### Java获取系统参数规格 #### 1. 获取Java版本 ```java System.out.println("Java版本:\n" + System.getProperty("java.version")); ``` 该命令返回当前正在运行的Java虚拟机(JVM)的主要版本号,例如`1.8.0_251...

    Java获得系统时间

    ### Java获取系统时间详解 在Java编程语言中,获取系统时间是一项非常基本且重要的功能,尤其是在需要记录事件发生的时间、实现定时任务或是进行日期时间相关的计算时。本文将基于提供的代码示例,深入探讨如何在...

    XP系统下使用Java更改文件属性

    本文将深入探讨如何在XP环境下利用Java来改变文件的属性,包括系统属性、隐藏属性、存档属性和只读属性。 首先,我们需要了解Java中与文件操作相关的类,主要是`java.io.File`类。`File`类提供了大量的静态和实例...

    Java得到文件属性信息.rar

    这个名为"Java得到文件属性信息.rar"的压缩包很可能包含一个或多个示例代码,用于演示如何在Java中获取文件的各种属性。下面将详细阐述如何在Java中访问和操作这些属性。 首先,我们可以使用`java.io.File`类来代表...

    NDK开发之C语言调用java方法和获取属性

    本篇文章将深入探讨NDK开发中的一个重要话题:如何从C语言层面调用Java方法以及获取Java对象的属性。 首先,我们需要理解JNI(Java Native Interface),它是Java平台的标准本地接口,用于在Java代码和本地(非Java...

    java图片浏览管理系统

    2. **Swing或JavaFX**:在Java中,Swing和JavaFX是两个常用的图形用户界面(GUI)工具包,用于创建桌面应用程序。Java图片浏览管理系统可能使用了其中之一来构建用户界面,包括按钮、文本框、滚动条、菜单等元素。 ...

    java实现点名系统

    在本项目中,"java实现点名系统" 是一个基于Java技术栈的软件应用,它利用XML作为数据存储,Swing构建用户界面,并且通过DOM4J库解析XML,以确保点名过程中不会重复点到同一名学生。下面将详细阐述这个系统的关键...

    java 反射取得类的私有属性,通过私有属性取得属性值

    要获取类的私有属性,我们需要先获得该类的`Class`对象,这可以通过`Class.forName()`方法或者`MyClass.class`的方式实现。然后,我们可以使用`getDeclaredFields()`方法获取类的所有声明的字段,包括私有的。这个...

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

    #### Java中获取系统属性的方法 在Java编程语言中,可以通过`System.getProperties()`方法来获取系统的属性集合。如果当前没有系统属性集合,Java会自动创建并初始化一个新的系统属性集合。此外,还可以通过`System...

    java超市收银系统

    其次,输入输出流在Java中用于处理数据的读取和写入。在这个收银系统中,输入流可能用于读取用户输入的商品信息或从文件加载预设的商品数据,而输出流则用于显示收银台的结账信息,如总价、找零等。Java的...

    java版获取本地系统信息的源码工程

    - `os.name`和`os.version`系统属性:通过`System.getProperty("os.name")`和`System.getProperty("os.version")`可以获取操作系统类型和版本。 - `java.lang.ComputerSystem`:如果使用Java 7及以上版本,可以...

Global site tag (gtag.js) - Google Analytics