import java.lang.System;
import java.util.Properties;
import java.util.Hashtable;
import java.util.Enumeration;
public class SystemInfo{
file://懚曻JVM?摼揑宯?懏惈
static private Properties _property;
file://Main function
public static void main(String[] args){
getSystemProperty();
Hashtable hashKey;
hashKey=new Hashtable();
file://彨宯?怣懅揑??帤榓??曻摓hashtable
hashKey.put("java.home", "Java埨憰栚? ");
hashKey.put("java.class.path", "憰??揑楬宎 ");
hashKey.put("java.specification.version", "Java API ?錀揑斉杮 ");
hashKey.put("java.specification.vendor", "Java API ?錀揑櫴彜 ");
hashKey.put("java.specification.name", "Java API ?錀揑柤徧 ");
hashKey.put("java.version", "Java API ??揑斉杮 ");
hashKey.put("java.vendor", "Java API ??揑櫴彜 ");
hashKey.put("java.vendor.url", "Java API ?錀櫴彜揑URL");
hashKey.put("java.vm.specification.version", "Java嫊?婘?錀揑斉杮 ");
hashKey.put("java.vm.specification.vendor", "Java嫊?婘?錀揑櫴彜 ");
hashKey.put("java.vm.specification.name", "Java嫊?婘?錀揑柤徧 ");
hashKey.put("java.vm.version", "Java嫊?婘??揑斉杮 ");
hashKey.put("java.vm.vendor", "Java嫊?婘??揑櫴彜 ");
hashKey.put("java.vm.name", "Java嫊?婘??揑柤徧 ");
hashKey.put("java.class.version", "Java?暥審奿幃揑斉杮 ");
hashKey.put("os.name", "庡婘憖嶌宯?揑柤徧 ");
hashKey.put("os.arch", "庡婘憖嶌宯?揑懱宯??");
hashKey.put("os.version", "庡婘憖嶌宯?揑斉杮 ");
hashKey.put("file.separator", "暯戜栚?揑暘妘晞 ");
hashKey.put("path.separator", "暯戜楬宎揑暘妘晞 ");
hashKey.put("line.separator", "暯戜暥杮峴揑暘妘晞 ");
hashKey.put("user.name", "摉慜梡?揑??柤徧 ");
hashKey.put("user.home", "摉慜梡?揑崻栚? ");
hashKey.put("user.dir", "摉慜岺嶌栚? ");
Enumeration enum;
String propertyKey;
enum=hashKey.keys();
while(enum.hasMoreElements()){
propertyKey=(String)enum.nextElement();
System.out.println((String)hashKey.get(propertyKey)
+":"+_property.getProperty(propertyKey));
}
}
/**
* ?摼宯?懏惈楍昞
* @return Properties
*/
static public Properties getSystemProperty(){
_property=System.getProperties();
return _property;
}
}
import java.util.Properties;
import java.util.Hashtable;
import java.util.Enumeration;
public class SystemInfo{
file://懚曻JVM?摼揑宯?懏惈
static private Properties _property;
file://Main function
public static void main(String[] args){
getSystemProperty();
Hashtable hashKey;
hashKey=new Hashtable();
file://彨宯?怣懅揑??帤榓??曻摓hashtable
hashKey.put("java.home", "Java埨憰栚? ");
hashKey.put("java.class.path", "憰??揑楬宎 ");
hashKey.put("java.specification.version", "Java API ?錀揑斉杮 ");
hashKey.put("java.specification.vendor", "Java API ?錀揑櫴彜 ");
hashKey.put("java.specification.name", "Java API ?錀揑柤徧 ");
hashKey.put("java.version", "Java API ??揑斉杮 ");
hashKey.put("java.vendor", "Java API ??揑櫴彜 ");
hashKey.put("java.vendor.url", "Java API ?錀櫴彜揑URL");
hashKey.put("java.vm.specification.version", "Java嫊?婘?錀揑斉杮 ");
hashKey.put("java.vm.specification.vendor", "Java嫊?婘?錀揑櫴彜 ");
hashKey.put("java.vm.specification.name", "Java嫊?婘?錀揑柤徧 ");
hashKey.put("java.vm.version", "Java嫊?婘??揑斉杮 ");
hashKey.put("java.vm.vendor", "Java嫊?婘??揑櫴彜 ");
hashKey.put("java.vm.name", "Java嫊?婘??揑柤徧 ");
hashKey.put("java.class.version", "Java?暥審奿幃揑斉杮 ");
hashKey.put("os.name", "庡婘憖嶌宯?揑柤徧 ");
hashKey.put("os.arch", "庡婘憖嶌宯?揑懱宯??");
hashKey.put("os.version", "庡婘憖嶌宯?揑斉杮 ");
hashKey.put("file.separator", "暯戜栚?揑暘妘晞 ");
hashKey.put("path.separator", "暯戜楬宎揑暘妘晞 ");
hashKey.put("line.separator", "暯戜暥杮峴揑暘妘晞 ");
hashKey.put("user.name", "摉慜梡?揑??柤徧 ");
hashKey.put("user.home", "摉慜梡?揑崻栚? ");
hashKey.put("user.dir", "摉慜岺嶌栚? ");
Enumeration enum;
String propertyKey;
enum=hashKey.keys();
while(enum.hasMoreElements()){
propertyKey=(String)enum.nextElement();
System.out.println((String)hashKey.get(propertyKey)
+":"+_property.getProperty(propertyKey));
}
}
/**
* ?摼宯?懏惈楍昞
* @return Properties
*/
static public Properties getSystemProperty(){
_property=System.getProperties();
return _property;
}
}
解决方案 »
- 布局、容器
- BufferedReader的read和DataInputStream的readUTF()在是否阻塞上的区别
- jfreechart画的时序图横轴坐标能实现24小时制吗
- 帮忙看看sql连接问题
- 怎么调用文件树形目录啊?
- 请问如何在一个List最开始插入一个元素,其他元素一次向后移动一位?
- 请问:java web start的作用的是什么???具体点
- 最近老板问那个ide 好? jb ,wasd ,eclipse....etc (volume 2)
- java初学者关于java的概念问题!
- 放风2
- 怎样实现一个树型结构,并能够浏览整个磁盘的所以目录和文件!!(高分相送)
- 新手问题(在线等)
●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安装目录、用户名称等系统内容具有读的权限。