获取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;
}
}
你这个比较详细,试过可行,谢谢!
用Set 方法获取所有环境变量行,做一个字典索引;
或者
Java:
用: System.getProperty()
.net
Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine) //计算机的环境变量
Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User)//用户环境变量
.net下:
Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine) //计算机的环境变量
Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User)//用户环境变量
Java:System.getProperty()
您们速度太快了,只好借来用用。