获取绝对路径

来源:互联网 发布:java调用接口返回url 编辑:程序博客网 时间:2024/05/21 09:19
public class WebInfoPathUtil {

    /**
     * log4j
     */
    private static final Logger logger = Logger.getLogger(WebInfoPathUtil.class);

    /**
     *
     * getWebInfoRealPath 获取绝对路径
     *
     * @return
     */
    public static String getWebInfoRealPath() {
        try {
            URL url = WebInfoPathUtil.class.getResource("");
            String path = url.toString();
            int index = path.indexOf("WEB-INF");
            if (index == -1) {
                index = path.indexOf("classes");
            }
            if (index == -1) {
                index = path.indexOf("bin");
            }
            path = path.substring(0, index);
            if (path.startsWith("zip")) {// 当class文件在war中时,此时返回zip:D:/...这样的路径
                path = path.substring(4);
            } else if (path.startsWith("file")) {// 当class文件在class文件中时,此时返回file:/D:/...这样的路径
                path = path.substring(6);
            } else if (path.startsWith("jar")) {// 当class文件在jar文件里面时,此时返回jar:file:/D:/...这样的路径
                path = path.substring(10);
            }
            path = URLDecoder.decode(path, "UTF-8");
            // 获取系统的文件符号
            String separator = File.separator;
            if ("/".equals(separator)) {
                path = "/" + path;
            }
            return path;
        } catch (UnsupportedEncodingException e) {
            logger.error("获取项目的绝对路径异常!", e);
            return null;
        } catch (Exception e) {
            logger.error("获取项目的绝对路径异常!", e);
            return null;
        }
    }
}

0 0
原创粉丝点击