找到两种方法,都是利用环境变量获取的:
法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.   

    呵呵,我记得这是一个老贴了。刚翻出来。看看吧,能解决你的疑惑了。
    http://topic.csdn.net/u/20070726/16/dd0f6c44-d568-4b50-98fe-a7cf3907400e.html
      

  2.   

    楼主输出的环境变量都是C:\Windows
    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来获得相应的值就行了.
      

  3.   

    Process proc = Runtime.getRuntime().exec("cmd /c echo %SystemRoot%");  是用java调的windows命令行cmd      BufferedReader reader =  new BufferedReader(  
        new InputStreamReader(proc.getInputStream()));  
          String systemPath = reader.readLine().trim(); 
    然后利用java.io.inputStream把执行的结果读出来了System.getenv跟2楼写的那几个大概是一个类型的,应该跟我说的不是一种类型,不了解,学习一下去