package com.wangyin.ak47.common; import java.io.File; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; /** * AK47 environment variables. * * AK47的环境变量 * * @author hannyu * */ public class Ak47Env { // if running from jar public static final boolean IF_RUNNING_FROM_JAR = Ak47Env.class.getResource( Ak47Env.class.getSimpleName()+".class").getProtocol().equals("jar");// $NON-NLS-1$ $NON-NLS-2$ // AK47 pageck root public static final String AK47_PACKAGE_ROOT = Ak47Env.class.getPackage().getName(); // mockserver find package path //public static final String MOCKSERVER_FIND_PACKAGE = MockServer.class.getPackage().getName(); public static final String MOCKSERVER_FIND_PACKAGE = AK47_PACKAGE_ROOT + ".mocklets"; // all contains the last "/" // ak47 local share public static final String AK47_LOCAL_SHARE_DIR; static { String tmpDir = System.getProperty("ak47.localShare",""); if (tmpDir.length() == 0) { tmpDir = System.getProperty("user.home") + File.separator + ".ak47"+ File.separator; } AK47_LOCAL_SHARE_DIR = tmpDir; System.setProperty("ak47.localShare", AK47_LOCAL_SHARE_DIR); } // ak47 home public static final String AK47_HOME_DIR; public static final String AK47_HOME_CONF_DIR; public static final String AK47_HOME_BIN_DIR; public static final String AK47_HOME_LIB_DIR; public static final String AK47_HOME_DATA_DIR; public static final String AK47_HOME_LOG_DIR; // ext_dir is NOT fixed public static String AK47_HOME_EXT_DIR; static { String jarUrl = Ak47Env.class.getProtectionDomain().getCodeSource().getLocation() .getFile(); String jarPath = "./"; try{ jarPath = URLDecoder.decode(jarUrl, "UTF-8"); }catch(UnsupportedEncodingException e){ System.err.println("APP_CONF_DIR init fail. jarUrl is "+jarUrl+"."); } File jarFile = new File(jarPath); AK47_HOME_DIR = jarFile.getAbsoluteFile().getParentFile().getParent() + File.separator; AK47_HOME_CONF_DIR = AK47_HOME_DIR + "conf"; AK47_HOME_BIN_DIR = AK47_HOME_DIR + "bin"; AK47_HOME_LIB_DIR = AK47_HOME_DIR + "lib"; AK47_HOME_DATA_DIR = AK47_HOME_DIR + "data"; AK47_HOME_LOG_DIR = AK47_HOME_DIR + "log"; AK47_HOME_EXT_DIR = AK47_HOME_DIR + "ext"; System.setProperty("ak47.home", AK47_HOME_DIR); } }