首页 新闻 会员 周边

获取环境变量值的问题

0
悬赏园豆:50 [已解决问题] 解决于 2011-11-17 00:17

"我的电脑" 属性中有一个环境变量,相信大家都设置过java_home之类的环境变量。

现在有一个问题,如何能够通过环境变量的名称提取到该环境变量的值。

用java或者C#程序来实现。

第一次在园地提问,大家多多帮忙!谢谢啦!

kangxi的主页 kangxi | 初学一级 | 园豆:155
提问于:2011-11-10 23:57
< >
分享
最佳答案
1

获取JAVA_HOME简单:直接用System.out.println(System.getProperty("java.home"));

要是获取非JAVA虚拟机相关的环境变量,就要绕个弯,用CMD的命令:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Properties;

public class Test {

public static void main(String[] args) {
try {
Test sp = new Test();
Properties p = sp.getEnv();
System.out.println(p.getProperty("CLASSPATH")); // 注意大小写
} catch (Exception e) {
System.out.println(e);
}
System.out.println(System.getProperty("java.home"));
// 属性名 描 述
// java.version Java 运行时版本
// java.home Java 的安装目录
// java.class.version Java 类格式的版本号
// java.class.path Java 类的查找路径
// java.io.tmpdir 默认的临时目录
// java.compiler Java 所使用的及时编译器
// java.ext.dirs Java 扩展包的目录
// os.name 操作系统的名称
// os.arch 操作系统的体系结构
// os.version 操作系统的版本
// file.separator 文件分隔符(Unix 下为 '/ ')
// path.separator 路径分隔符(Unix 下为 ': ')
// line.separator 换行符(Unix 下为 '\n ')
// user.name 用户帐号名
// user.home 用户目录
// user.dir 用户当前的工作目录

}

public Properties getEnv() throws Exception {
Properties prop = new Properties();
String OS = System.getProperty("os.name").toLowerCase();
Process p = null;
if (OS.indexOf("windows") > -1) {
p = Runtime.getRuntime().exec("cmd /c set"); // 其它的操作系统可以自行处理,
}
BufferedReader br = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
int i = line.indexOf("=");
if (i > -1) {
String key = line.substring(0, i);
String value = line.substring(i + 1);
prop.setProperty(key, value);
}
}
return prop;
}
}


 

收获园豆:50
英雄小强 | 菜鸟二级 |园豆:292 | 2011-11-15 10:01

你这个比较详细,试过可行,谢谢!

kangxi | 园豆:155 (初学一级) | 2011-11-17 00:16
其他回答(3)
0

用Set 方法获取所有环境变量行,做一个字典索引;

或者

Java:

用: System.getProperty()

winzheng | 园豆:8797 (大侠五级) | 2011-11-11 01:12
0

.net

Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine) //计算机的环境变量

Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User)//用户环境变量

死白的man | 园豆:2135 (老鸟四级) | 2011-11-11 08:06
0

.net下:

Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine) //计算机的环境变量

Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User)//用户环境变量

Java:System.getProperty() 

您们速度太快了,只好借来用用。

[CC] | 园豆:61 (初学一级) | 2011-11-11 08:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册