本文实例讲述了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获取文件绝对路径的方法相关推荐

  1. java curl get_如何从Java中的curl get请求获取文件?

    我正在尝试使用API​​下载一些XBRL文件.为了做到这一点,我需要做一个卷曲的请求,就像这样:如何从Java中的curl get请求获取文件? curl -XGET http://distribut ...

  2. php put怎么接收文件,php,restful_PHP PUT方式传文件的话,如何获取文件内容呢 ?,php,restful,http - phpStudy...

    PHP PUT方式传文件的话,如何获取文件内容呢 ? 最近因为在做前后端分离,后端PHP所有Api都使用RESTFul风格. 但是在使用PUT上传文件的时候,发现$_FILES没有文件信息(可能没有上 ...

  3. java文件绝对路径_获取文件夹文件绝对路径

    引用   linuxpro https://zhidao.baidu.com/question/59940919.html?fr=iks&word=DOS+%C3%FC%C1%EE&i ...

  4. java 运行os文件路径_Java获取文件路径的几种方式

    关于绝对路径和相对路径: 绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径. http://www.su ...

  5. java 获取路径_JAVA获取文件路径

    我们在上传文件和文件处理的时候需要获取资源文件的路径.但是在项目中获取的文件路径,可能并不是我们想要的文件路径,因为开发项目中获取的路径与打成jar包后的路径并不一致. 以一个SpingCloud项目 ...

  6. java获取文件的所有者_java获取文件夹下所有文件的名称 | 星尘

    大体思路:先获取路径,接着查询当前目录下是否存在文件,如果不存在就结束程序,返回null.如果存在就判断是目录还是文件. import java.io.File; public class GetFo ...

  7. java文件file字符集_获取文件字符集(或文件编码) 的工具类

    packageorg.mozilla.intl.chardet; importjava.io.BufferedInputStream; importjava.io.File; importjava.i ...

  8. java获取文件编码_java如何获取文件编码格式

    1:简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK. 按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理 ...

  9. java 文件md5校验_Java 获取 文件md5校验码

    讯雷下载的核心思想是校验文件的md5值,两个文件若md5相同则为同一文件. 当得到用户下载某个文件的请求后它根据数据库中保留的文件md5比对出拥有此文件的url, 将用户请求挂接到此url上并仿造一个 ...

  10. java查看日志命令_[Java教程]【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo...

    [Java教程][Linux]linux查看日志文件内容命令tail.cat.tac.head.echo 0 2017-11-14 12:00:29 linux查看日志文件内容命令tail.cat.t ...

最新文章

  1. 用C语言写PHP扩展
  2. 一文轻松了解Graph Neural Networks
  3. Application runtime path /opt/lampp/htdocs/yii/test/protected/runtime is not valid. 错误
  4. 常见的算法排序(2)
  5. 你还在 996 ?提升工作效率请看这几个公众号
  6. 惠普战66怎么用u盘进入系统_惠普笔记本怎么用u盘启动装系统,空间也要大所以超来超受欢迎!...
  7. 探讨.NET Core的未来
  8. 软件工程详细设计说明书_软件工程导论知识点梳理之简答题
  9. 通过脚本提示是否提交并将表单发向另一页面处理!!
  10. 前端开发利器—FIDDLER 转
  11. 【英语学习】【WOTD】 putsch 释义/词源/示例
  12. linux内核丢包分析工具,Linux模拟网络丢包与延迟的方法
  13. kotlin数据类_Kotlin数据类
  14. python中流程图的基本元素_面试干货:成为Python程序员的终极指南!(内附回答)...
  15. 23.Instance Objects
  16. 马尾物联网企业主导或参与制定修订各级标准达60项
  17. vue使用下载插件来完成下载文件
  18. 消息中间件----ActiveMQ
  19. 未转变者服务器载具名称,交通工具 - 未转变者中文维基 | Unturned资料站 - 灰机wiki...
  20. mysql多数据源配置

热门文章

  1. python django web项目的构建步骤(一)
  2. 《Android App开发入门:使用Android Studio 2.X开发环境》——1-3 Android Studio 快速上手...
  3. docker centos 无法用systemctl 启动服务的问题
  4. Nimbus/Supervisor本地目录结构
  5. Linq之延迟加载特性
  6. 破解网页禁止使用“复制”、“粘贴“
  7. Asp.net 的网络打印 – Javascript 控制打印
  8. linux常用的命令行
  9. keras中的fit函数参数_keras的fit_generator与callback函数
  10. php rule engine,jinchunguang