找到两种方法,都是利用环境变量获取的:
法1 String strOSPath = System.getenv( "SystemRoot");
法2 Process proc = Runtime.getRuntime().exec("cmd /c echo %SystemRoot%");
BufferedReader reader = new BufferedReader(
new InputStreamReader(proc.getInputStream()));
String systemPath = reader.readLine().trim();
不知道这两种方法本质上是否有不同,利用环境变量获取操作系统路径是否有什么隐患,还有没有其他更好的方法?3q
法1 String strOSPath = System.getenv( "SystemRoot");
法2 Process proc = Runtime.getRuntime().exec("cmd /c echo %SystemRoot%");
BufferedReader reader = new BufferedReader(
new InputStreamReader(proc.getInputStream()));
String systemPath = reader.readLine().trim();
不知道这两种方法本质上是否有不同,利用环境变量获取操作系统路径是否有什么隐患,还有没有其他更好的方法?3q
http://topic.csdn.net/u/20070726/16/dd0f6c44-d568-4b50-98fe-a7cf3907400e.html
import java.util.Map;public class TestPath {
public static void main(String[] args) {
String strOSPath = System.getenv("SystemRoot");
System.out.println(strOSPath); for (Map.Entry entry : System.getProperties().entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
} for (Map.Entry entry : System.getenv().entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}你要的东西基本上都会给你输出出来,然后楼主再挑上自己要用的key来获得相应的值就行了.
new InputStreamReader(proc.getInputStream()));
String systemPath = reader.readLine().trim();
然后利用java.io.inputStream把执行的结果读出来了System.getenv跟2楼写的那几个大概是一个类型的,应该跟我说的不是一种类型,不了解,学习一下去