您的位置:首页 > 业界新闻

可信计算的研究与发展,互联网信息性问题

2013-04-20 10:08 369 查看
在Java学习中相比大家对设置环境变量已经再熟悉不过了,这个是指操作系统的环境变量
但却很少用到Java系统属性这个概念,其实JVM本身就相当于一个计算机自然它本身也需要一些自己的环境变量 JVM中称为系统属性(为区别操作系统的环境变量改名系统属性 这纯属个人理解 若有误望给予指出)。
只不过这些变量在平时的程序中很少出现
更多是在脚本中出现 对某一个属性赋值然后在程序中获取值或直接作为实参使用。

首先要搞清楚环境变量和系统属性的区别
在java.lang.System这个类中提供了两个方法
getenv()
Determines the current system properties.
getProperties
Returns an unmodifiable string map view of the current system environment
执行下面的程序 我们就可以更直观看出区别
public class Param {
public static void main(String[] args){
System.out.println("===========================");
System.out.println(System.getenv());
System.out.println("===========================");
System.getProperties().list(System.err);
}
}

其中getenv() 结果为(部分)
Path=C:/Users/zkg/AppData/Local/Genuitec/Common/binary/
JAVA_HOME=c:\Java
这几个变量名相比大家一定不陌生,
这个方法返回的就是当前操作系统的环境变量和当前用户变量。
getProperties()返回的结果
大家会比较陌生 这个结果返回的是 JVM的“环境变量”及系统属性
JVM会默认设置很多系统属性 可以查看该方法的源代码,
其注释已经说明会默认增加那些系统属性
当然我们更关心的是我们自己怎么添加和获取系统属性 和 环境变量
二 变量的操作
环境变量操作
环境变量的操作有两种方法
1 通过windows界面设置 变量会一直存在
2 DOS命令set设置(这些变量只是在当前DOS环境中存在一旦关闭则消失)
比如在脚本中添加 set parm=KKKK 则在当前操作界面就可以使用这个变量
在当前脚本执行的程序中可以通过getenv("parm")来获得其值
(注意一旦脚本运行完毕 或 DOS窗口关闭则这些的环境变量则也会取消 )
例子:
脚本内容
@echo off
set we=k
java zk

zk.class的源码为
public class zk{
public static void main(String[] args){
String value = System.getenv("we");
System.out.print(value);
}
}

系统属性操作有两种方法
第一在程序中通过setProperty(key,name) getProperty(key)来设置
第二通过命令或脚本设置
重点讲解这个因为在一些脚本语言中大家经常会无意见到这些设置
却不理解是干什么用的,下面通过一个例子演示脚本中的使用

Java 系统变量主要是用于给main方法传参数
用法如下
命令格式
java -D<name>=<value> xx name:系统属性键 value:值 xx:java命令要运行的类名
如果要设置多个参数
java -D<name>=<value> -D<name>=<value> ..xx name
脚本内容
@echo off
java -Duu="HelloWorld" ParamTest

注意:java -Duu=HelloWord ParamTest 去掉双引号也可以 但值不可包含空格否则
会把空格之后作为类名 如 Hello World 则会把World作为类名来处理
ParamTest.class源码为:
public class ParamTest{
public static void main(String[] args){
String param = System.getProperty("uu");
Systeem.out.print(param);
}
}

当在脚本或命令行执行命令时 结果为“HelloWorld”
本文出自 “不落西” 博客,请务必保留此出处http://375163948.blog.51cto.com/7498815/1275855
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: