作者在 2011-11-11 13:17:31 发布以下内容
对于配置jdk,只要把jdk的bin目录放在系统变量的path下就行了,当然你如果设置了JAVA_HOME,
以后学tomcat时就不用再费事了。可是如何获得系统环境变量?比如获得path下的所有可执行程序的路径?
下面的一段小代码想必能帮你解决:
package arron.util;
import java.io.BufferedInputStream;
import java.io.IOException;
public class GetSystemVar {
public static void main(String[] args) throws IOException {
Runtime runtime = Runtime.getRuntime();
// 这个方法可能抛出异常,为方便就直接抛到控制台了
Process process = runtime.exec("cmd /c echo %path%");
BufferedInputStream bis = new BufferedInputStream(
process.getInputStream());// path的内容作为输入源
int var = 0;// 把从path中读取的字符放在这里
StringBuffer paths = new StringBuffer();// path中除分号外所有的字符放在这里
while ((var = bis.read()) != -1) {
if (((char) var) == ';') {
paths.append('\n');// 每个路径换一行
continue;
}
paths.append((char) var);
}
System.out.println(paths);// 输出每一个路径
}
}
import java.io.BufferedInputStream;
import java.io.IOException;
public class GetSystemVar {
public static void main(String[] args) throws IOException {
Runtime runtime = Runtime.getRuntime();
// 这个方法可能抛出异常,为方便就直接抛到控制台了
Process process = runtime.exec("cmd /c echo %path%");
BufferedInputStream bis = new BufferedInputStream(
process.getInputStream());// path的内容作为输入源
int var = 0;// 把从path中读取的字符放在这里
StringBuffer paths = new StringBuffer();// path中除分号外所有的字符放在这里
while ((var = bis.read()) != -1) {
if (((char) var) == ';') {
paths.append('\n');// 每个路径换一行
continue;
}
paths.append((char) var);
}
System.out.println(paths);// 输出每一个路径
}
}
今天上午闲着没事,在瞅JDK文档时发现Process类中有个getInputStream()方法,就写了上面的测试代码
看能否取得系统变量,结果还真成功了^_^。System类的getProperty()好像不能实现上面的功能吧?