Java获取环境变量
来源:互联网 发布:淘宝宝贝物流重量 编辑:程序博客网 时间:2024/05/21 00:53
分为获取java自身的一些环境变量和和操作系统相关的环境变量。
- 获取JVM相关的一些变量
在运行时设置一个环境变量 debug 为 true: java -Ddebug=true YourClass
在程序中设置一个环境变量 debug 为 true: System.setProperty( "debug", "true" );
获取一个环境变量 debug : String debug = System.getProperty( "debug" );
下表中列出了一部分环境变量,这些是 Java 已经定义好的,可以在程序中通过 System.getProperty( "key" ) 来获取,更多的环境变量请参阅 JDK 文档。属性名描 述java.versionJava 运行时版本java.homeJava 的安装目录java.class.versionJava 类格式的版本号java.class.pathJava 类的查找路径java.io.tmpdir默认的临时目录java.compilerJava 所使用的及时编译器java.ext.dirsJava 扩展包的目录os.name操作系统的名称os.arch操作系统的体系结构os.version操作系统的版本file.separator文件分隔符(Unix 下为'/')path.separator路径分隔符(Unix 下为':')line.separator换行符(Unix 下为'/n')user.name用户帐号名user.home用户目录user.dir用户当前的工作目录
其他具体的可以参考后面的代码实例程序。
- 取得操作系统的环境变量
注意,这次是获取操作系统的环境变量,而不是获取JVM相关的一些变量。
也许是为了营造JVM就是操作系统平台的气氛,抑或是为了强调Java的平台无关性,不知几时起Java已经把System.getenv(String)函数废弃了。所以一般来说Java只能获取它自己定义的一些变量,而无法与操作系统的环境变量交互,只能在运行靠java的“-D”参数来设置要传递给它的一些变量。
所以唯一的办法只能先判断操作系统,然后用操作系统的命令来调出环境变量列表,设法获得该输出列表。
- 代码实现
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;public class SystemValue {
/**
* 使用System获取系统相关的值
*/
public static void getSystemProperties() {
Properties pp = System.getProperties();
System.out.println("System's Properties:");
System.out.println();
java.util.Enumeration en = pp.propertyNames();
while (en.hasMoreElements()) {
String nextE = (String) en.nextElement();
System.out.print(nextE + "=" + pp.getProperty(nextE));
System.out.println();
}
}public static void getCustomProperties(String key) {
Map map = getEnv();
System.out.println(key + "=" + map.get(key));
}public static Map getEnv() {
Map map = new HashMap();
Process p = null;
Runtime r = Runtime.getRuntime();
String OS = System.getProperty("os.name").toLowerCase();
System.out.println("OS="+OS);
try {
if (OS.indexOf("windows 9") > -1) {
p = r.exec("command.com /c set");
} else if ((OS.indexOf("nt") > -1)
|| (OS.indexOf("windows 20") > -1)
|| (OS.indexOf("windows xp") > -1)) {
p = r.exec("cmd.exe /c set");
} else {
// Unix
p = r.exec("env");
}
BufferedReader br = new BufferedReader(new InputStreamReader(p
.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
String[] str = line.split("=");
map.put(str[0], str[1]);
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
return map;
}public static void main(String[] args) {
// getSystemProperties();
getCustomProperties("JAVA_HOME");
}
}
- java中获取环境变量
- Java获取环境变量
- 在Java中获取环境变量
- java获取操作系统的环境变量
- Java-获取系统的环境变量
- java中获取系统属性以及环境变量
- Java执行wmic命令获取系统环境变量
- Java获取系统属性及环境变量
- Java执行wmic命令获取系统环境变量
- java中获取系统属性以及环境变量
- java获取系统属性和环境变量
- Java获取系统属性及环境变量
- Java执行wmic命令获取系统环境变量
- java 获取系统变量he环境变量
- Java获取系统属性及环境变量
- Java 系统属性和环境变量的获取
- Java获取系统属性和环境变量
- java获取和设置系统变量(环境变量)
- 盘点那些千奇百怪的手机套(一)
- linux命令行(十四)
- HTTP post ---JDK中的URLConnection参数详解 .
- 第24章、OnLongClickListener长按事件(从零开始学Android)
- android spring 框架下载地址
- Java获取环境变量
- 桥接模式
- 《跟我一起学makefile》学习笔记
- tools - p4v How do I display a particular changelist number in p4v?
- java.lang.OutOfMemoryError: PermGen space及其解决方法 .
- LUA 一些常用函数的简单注解说明
- 软件开发模型介绍、总结归纳
- 盘点那些千奇百怪的手机套(二)
- 第25章、OnTouchListener触摸事件(从零开始学Android)