Java tutorial
/* * Copyright 2007-2107 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.ymate.platform.commons.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.SystemUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * <p> * SystemEnvUtils * </p> * <p> * ?? * </p> * * @author (suninformation@163.com) * @version 0.0.0 * <table style="border:1px solid gray;"> * <tr> * <th width="100px">?</th><th width="100px"></th><th * width="100px"></th><th width="100px"></th> * </tr> * <!-- Table ?? --> * <tr> * <td>0.0.0</td> * <td></td> * <td></td> * <td>2010-8-2?10:11:43</td> * </tr> * </table> */ public class SystemEnvUtils { private static final Log _LOG = LogFactory.getLog(SystemEnvUtils.class); /** * ?? */ private static final Map<String, String> SYSTEM_ENV_MAP = new HashMap<String, String>(); static { initSystemEnvs(); } /** * ? */ private SystemEnvUtils() { } /** * ????? */ public static void initSystemEnvs() { Process p = null; try { if (SystemUtils.IS_OS_WINDOWS) { p = Runtime.getRuntime().exec("cmd /c set"); } else if (SystemUtils.IS_OS_UNIX) { p = Runtime.getRuntime().exec("/bin/sh -c set"); } else { _LOG.warn("Unknown os.name=" + SystemUtils.OS_NAME); SYSTEM_ENV_MAP.clear(); } if (p != null) { BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = br.readLine()) != null) { int i = line.indexOf("="); if (i > -1) { String key = line.substring(0, i); String value = line.substring(i + 1); SYSTEM_ENV_MAP.put(key, value); } } } } catch (IOException e) { _LOG.warn(RuntimeUtils.unwrapThrow(e)); } } /** * ??? * * @return ?? */ public static Map<String, String> getSystemEnvs() { if (SYSTEM_ENV_MAP.isEmpty()) { initSystemEnvs(); } return SYSTEM_ENV_MAP; } /** * ??? * * @param envName ??null * @return ??????? */ public static String getSystemEnv(String envName) { if (StringUtils.isNotBlank(envName)) { if (SYSTEM_ENV_MAP.isEmpty()) { initSystemEnvs(); } return SYSTEM_ENV_MAP.get(envName); } return null; } }