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

    从System.getProperty()获取应该比较好。
      

  2.   

    用System.getProperty()似乎不行吧,没有SystemRoot这个属性啊?
      

  3.   

    期待你整理一片blog总结一下,谢谢
      

  4.   

    还有一种方式就是写一个动态库,用JNI去调用。
      

  5.   

    System.getenv()获得系统的各种参数和属性用System方法,在各种操作系统上都能运行,你的cmd只能在Windwos下面了。
      

  6.   

    可以使用 System.getenv 方法获得环境变量的值。由于 Windows 系统将 Windows 的目录设置在了 SystemRoot 这个环境变量中,
    所以就可以使用 System.getenv("SystemRoot") 方法来获得。如果想看看 path 环增变量中内容的话就可以使用 System.getenv("path"); 来查看。