1   /**
2    * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved.
3    *
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions of the Software.
13   *
14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  
23  package com.liferay.portal.kernel.util;
24  
25  import java.io.BufferedReader;
26  import java.io.IOException;
27  import java.io.InputStreamReader;
28  
29  import java.util.Enumeration;
30  import java.util.Properties;
31  
32  /**
33   * <a href="SystemEnv.java.html"><b><i>View Source</i></b></a>
34   *
35   * @author Brian Wing Shun Chan
36   *
37   */
38  public class SystemEnv {
39  
40      public static Properties getProperties() {
41          Properties props = new Properties();
42  
43          try {
44              Runtime runtime = Runtime.getRuntime();
45              Process process = null;
46  
47              String osName = System.getProperty("os.name").toLowerCase();
48  
49              if (osName.indexOf("windows ") > -1) {
50                  if (osName.indexOf("windows 9") > -1) {
51                      process = runtime.exec("command.com /c set");
52                  }
53                  else {
54                      process = runtime.exec("cmd.exe /c set");
55                  }
56              }
57              else {
58                  process = runtime.exec("env");
59              }
60  
61              BufferedReader br = new BufferedReader(
62                  new InputStreamReader(process.getInputStream()));
63  
64              String line;
65  
66              while ((line = br.readLine()) != null) {
67                  int pos = line.indexOf(StringPool.EQUAL);
68  
69                  if (pos != -1) {
70                      String key = line.substring(0, pos);
71                      String value = line.substring(pos + 1);
72  
73                      props.setProperty(key, value);
74                  }
75              }
76          }
77          catch (IOException ioe) {
78              ioe.printStackTrace();
79          }
80  
81          return props;
82      }
83  
84      public static void setProperties(Properties props) {
85          Properties envProps = getProperties();
86  
87          Enumeration<String> enu = (Enumeration<String>)envProps.propertyNames();
88  
89          while (enu.hasMoreElements()) {
90              String key = enu.nextElement();
91  
92              props.setProperty("env." + key, (String)envProps.get(key));
93          }
94      }
95  
96  }