zoukankan      html  css  js  c++  java
  • java获取项目路径

    import java.io.File;
    
    /**
     * new File("..pathabc.txt") 中的三个方法获取路径的方法 <br>
     * 1: getPath() 获取相对路径,例如 ..pathabc.txt <br>
     * 2: getAbslutlyPath() 获取绝对路径,但可能包含 ".." 或 "." 字符,例如D:otherPath..pathabc.txt <br>
     * 3: getCanonicalPath() 获取绝对路径,但不包含 ".." 或 "." 字符,例如 D:pathabc.txt
     */
    public class PathUtil {
    
        private static String webRootPath;
        private static String rootClassPath;
    
        @SuppressWarnings("rawtypes")
        public static String getPath(Class clazz) {
            String path = clazz.getResource("").getPath();
            return new File(path).getAbsolutePath();
        }
    
        public static String getPath(Object object) {
            String path = object.getClass().getResource("").getPath();
            return new File(path).getAbsolutePath();
        }
    
        public static String getRootClassPath() {
            if (rootClassPath == null) {
                try {
                    String path = PathUtil.class.getClassLoader().getResource("").toURI().getPath();
                    rootClassPath = new File(path).getAbsolutePath();
                } catch (Exception e) {
                    String path = PathUtil.class.getClassLoader().getResource("").getPath();
                    rootClassPath = new File(path).getAbsolutePath();
                }
            }
            return rootClassPath;
        }
    
        public static String getPackagePath(Object object) {
            Package p = object.getClass().getPackage();
            return p != null ? p.getName().replaceAll("\.", "/") : "";
        }
    
        public static File getFileFromJar(String file) {
            throw new RuntimeException("Not finish. Do not use this method.");
        }
    
        public static String getWebRootPath() {
            if (webRootPath == null)
                webRootPath = detectWebRootPath();
            return webRootPath;
        }
    
        public static void setWebRootPath(String webRootPath) {
            if (webRootPath == null)
                return;
            if (webRootPath.endsWith(File.separator))
                webRootPath = webRootPath.substring(0, webRootPath.length() - 1);
            PathUtil.webRootPath = webRootPath;
        }
    
        private static String detectWebRootPath() {
            try {
                String path = PathUtil.class.getResource("/").toURI().getPath();
                return new File(path).getParentFile().getParentFile().getCanonicalPath();
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }
  • 相关阅读:
    Python 的 IDLE 编辑器
    Android中如何在Eclipse中关联源代码?(图文)
    HTMl5的存储方式sessionStorage和localStorage详解
    HTML的 <u> 标签
    CSS巧妙实现分隔线的几种方法
    关于ajax跨域请求(cross Domain)
    JQuery中$.ajax()方法参数都有哪些?
    最优雅,高效的javascript字符串拼接
    深入学习JavaScript: apply 方法 详解(转)——非常好
    jQuery.ajax() 函数详解
  • 原文地址:https://www.cnblogs.com/shihaiming/p/6911331.html
Copyright © 2011-2022 走看看