class PropertiesUtils {

  public static Properties getProperties(String filePath) throws IOException {
    Properties p;

    String directoryOfConfigFile = System.getProperty(GlobalConstants.SYSTEM_PATH_NAME);

    if (!StringUtils.isEmpty(directoryOfConfigFile)) {// 优先从自定义目录中读取配置文件
      int len = directoryOfConfigFile.length();
      if (len >= 2 && directoryOfConfigFile.endsWith("/")) {
        directoryOfConfigFile = directoryOfConfigFile.substring(0, len - 1);// 删除最后一个字符/
      } else if (len >= 2 && directoryOfConfigFile.endsWith("\\")) {
        directoryOfConfigFile = directoryOfConfigFile.substring(0, len - 1);// 删除最后一个字符\
      }
    } else {
      directoryOfConfigFile = "config";// 没有自定义目录，从config目录中读取配置文件
    }

    // filePath只包含文件名，不含有字符/(也不含有字符\)
    String newFilePath = directoryOfConfigFile + "/" + filePath;

    try {
      try {
        p = getProperties(newFilePath, false);// jar包外
      } catch (IOException e) {
        p = getProperties(newFilePath, true);// jar包内
      }
    } catch (IOException e) {
      // 最后从当前目录下读取配置文件
      try {
        p = getProperties(filePath, false);// jar包外
      } catch (IOException e2) {
        p = getProperties(filePath, true);// jar包内
      }
    }


    return p;
  }

}