手机
当前位置:查字典教程网 >编程开发 >Java >JAVA获取文件绝对路径的方法
JAVA获取文件绝对路径的方法
摘要:本文实例讲述了JAVA获取文件绝对路径的方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:/***获取一个类的class文件所...

本文实例讲述了JAVA获取文件绝对路径的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:/**

* 获取一个类的class文件所在的绝对路径。 这个类可以是JDK自身的类,也可以是用户自定义的类,或者是第三方开发包里的类。

* 只要是在本程序中可以被加载的类,都可以定位到它的class文件的绝对路径。

*

* @param cls

* 一个对象的Class属性

* @return 这个类的class文件位置的绝对路径。 如果没有这个类的定义,则返回null。

*/

private String getPathFromClass(Class cls) throws IOException {

String path = null;

if (cls == null) {

throw new NullPointerException();

}

URL url = getClassLocationURL(cls);

if (url != null) {

path = url.getPath();

if ("jar".equalsIgnoreCase(url.getProtocol())) {

try {

path = new URL(path).getPath();

}

catch (MalformedURLException e) {

}

int location = path.indexOf("!/");

if (location != -1) {

path = path.substring(0, location);

}

}

File file = new File(path.replaceAll("%20"," "));

path = file.getCanonicalPath();

}

return path;

}

/**

* 获取类的class文件位置的URL。这个方法是本类最基础的方法,供其它方法调用。

*/

private URL getClassLocationURL(final Class cls) {

if (cls == null) {

throw new IllegalArgumentException("class that input is null");

}

URL result = null;

final String clsAsResource = cls.getName().replace('.', '/').concat(".class");

final ProtectionDomain pd = cls.getProtectionDomain();

if (pd != null) {

final CodeSource cs = pd.getCodeSource();

if (cs != null) {

result = cs.getLocation();

}

if (result != null) {

if ("file".equals(result.getProtocol())) {

try {

if (result.toExternalForm().endsWith(".jar")|| result.toExternalForm().endsWith(".zip")) {

result = new URL("jar:".concat(result.toExternalForm()).concat("!/").concat(clsAsResource));

}

else if (new File(result.getFile()).isDirectory()) {

result = new URL(result, clsAsResource);

}

}

catch (MalformedURLException ignore) {

}

}

}

}

if (result == null) {

final ClassLoader clsLoader = cls.getClassLoader();

result = clsLoader != null ? clsLoader.getResource(clsAsResource): ClassLoader.getSystemResource(clsAsResource);

}

return result;

}

希望本文所述对大家的Java程序设计有所帮助。

【JAVA获取文件绝对路径的方法】相关文章:

java获取时间的方法总结

通过url方式传递中文乱码的解决方法

java获取web容器地址的方法

Java加载资源文件时的路径问题的解决办法

java 获取项目文件路径实现方法

Java 完美判断中文字符的方法

JAVA中 终止线程的方法介绍

JAVA实现线程的三种方法

使用java获取md5值的两种方法

java 用递归获取一个目录下的所有文件路径的小例子

精品推荐
分类导航