能不能在properties文件里写相对路径?c/s项目,好像没法用${user.dir},但一般我们不知道客户会把程序装在哪个文件夹,我只想获得当前项目的路径啊
jdbc.url=jdbc:sqlite:/${user.dir}/administratorddbb.db

解决方案 »

  1.   

    properties文件可以用EL表达式?
      

  2.   

    c/s就是客户端对服务器,不是b/s浏览器对服务器,不是web项目,用不了el表达式啊
      

  3.   

    当然可以这样写,不过默认不会给你解析,楼主写一个简单的解析器就可以了。
    我就是这样做的。public final static Pattern EXPRESSION_REGEX = Pattern.compile("\\$\\{([\\w|\\.\\w]*)}"); public String parse(Properties props, String expression) {
    StringBuilder sb = new StringBuilder(expression);
    Matcher m = EXPRESSION_REGEX.matcher(sb);
    while (m.find()) {
    String _key = m.group(1);
    String _value;
    String property = props.getProperty(_key);
    if (property != null) {
    _value = parse(props, property);
    } else {
    _value = System.getProperty(_key);
    }
    if (_value != null) {
    sb.replace(m.start(), m.end(), _value);
    m.reset(sb);
    }
    }
    return sb.toString();
    }
    上面就是我写的,BUG有很多,适用范围也很小。