package com.venus.helper;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URL;
/**
* Copyright: 版权所有 ( c ) 北京启明星辰信息安全技术有限公司 2013。保留所有权利
* 作者: 郭宁
* 创建时间: 14-8-31 下午8:27
* 文件描述:
* 修改描述:
*/
public class URLUtil {
/**
* Description:取得当前类所在的文件
*
* @param clazz
* @return
*/
public static File getClassFile(Class clazz) {
URL path = clazz.getResource(clazz.getName().substring(
clazz.getName().lastIndexOf(".") + 1)
+ ".class");
if (path == null) {
String name = clazz.getName().replaceAll("[.]", "/");
path = clazz.getResource("/" + name + ".class");
}
return new File(path.getFile());
}
/**
* Description:同getClassFile 解决中文编码问题
*
* @param clazz
* @return
*/
public static String getClassFilePath(Class clazz) {
try {
return java.net.URLDecoder.decode(getClassFile(clazz)
.getAbsolutePath(), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return "";
}
}
/**
* Description:取得当前类所在的ClassPath目录
*
* @param clazz
* @return
*/
public static File getClassPathFile(Class clazz) {
File file = getClassFile(clazz);
for (int i = 0, count = clazz.getName().split("[.]").length; i < count; i++)
file = file.getParentFile();
if (file.getName().toUpperCase().endsWith(".JAR!")) {
file = file.getParentFile();
}
return file;
}
/**
* Description: 同getClassPathFile 解决中文编码问题
*
* @param clazz
* @return
*/
public static String getClassPath(Class clazz) {
try {
return java.net.URLDecoder.decode(getClassPathFile(clazz)
.getAbsolutePath(), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return "";
}
}
public static void main(String[] args) throws UnsupportedEncodingException {
System.out.println(getClassFilePath(URLUtil.class));
System.out.println(getClassPath(URLUtil.class));
}
}
java 获取 类的绝对路径
最新推荐文章于 2021-12-03 10:35:47 发布