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);
            }
        }
    }
  • 相关阅读:
    JVM垃圾收集器以及内存分配
    VisualVM工具的使用
    jstack的使用
    内存溢出的定位与分析
    JVM的内存模型
    JVM运行参数
    kafka-高效读写数据+zookeeper作用+事务
    重定向机制
    HTTP协议、时间戳
    TCP常见面试题 
  • 原文地址:https://www.cnblogs.com/shihaiming/p/6911331.html
Copyright © 2011-2022 走看看