package com.util;
import java.io.File;
/**
* new File(\"..\\path\\abc.txt\") 中的三个方法获取路径的方法 <br>
* 1: getPath() 获取相对路径,例如 ..\\path\\abc.txt <br>
* 2: getAbslutlyPath() 获取绝对路径,但可能包含 \"..\" 或 \".\" 字符,例如D:\\otherPath\\..\\path\\abc.txt <br>
* 3: getCanonicalPath() 获取绝对路径,但不包含 \"..\" 或 \".\" 字符,例如 D:\\path\\abc.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( ) {
String path = .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( ) {
Package p = .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);
}
}
}
继续阅读与本文标签相同的文章
上一篇 :
直播问答的风口与风险:网络攻击来了,有复活币吗?
下一篇 :
无线测温技术在电力行业中能够起到什么作用?
-
裂变方案:三大驱动力让用户主动分享裂变
2026-05-19栏目: 教程
-
华为鸿蒙成第五大操作系统,有希望超过iOS吗?
2026-05-19栏目: 教程
-
先破产再回国 贾跃亭这条路行不通
2026-05-19栏目: 教程
-
圆通速递决战双十一:率先实行涨价策略,其实取胜的关键不在于此
2026-05-19栏目: 教程
-
为什么要拥有一个区块链节点?
2026-05-19栏目: 教程
