java中类路径下的绝对路径(通用路径)

Posted yu011

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中类路径下的绝对路径(通用路径)相关的知识,希望对你有一定的参考价值。

类路径下的绝对路径(通用路径)

  • Class.forName("Myclass");像这种路径的缺点是:
    移植性差,在IDEA中默认的当前路径是project的根。如果不是IDEA,换到了其它位置,可能当前路径就不是project的根了,路径就会无效。
  • 一种比较通用的路径
    即使代码换位置了,这样编写仍然是通用的。(适用于任何操作系统)
    注意:使用以下通用方式的前提是:这个文件必须在类路径下。(放在src下的都是类路径下,src是类的根路径。)
  • 代码示例
public class Demo{
    public static void main(String[] args){

        /*
        Thread.currentThread():当前线程对象。
        getContextClassLoader():是线程对象的方法,
        可以获取到当前线程的类加载器对象。
        getResource():(获取资源)这是类加载器对象的方法,
        当前线程的类加载器默认从类的根路径下加载资源。
        */

        String path = Thread.currentThread()
                .getContextClassLoader()
                .getResource("classinfo.properties")
                .getPath();
        System.out.println(path);
    }
}

输出:
技术图片
这里返回的是class文件所在的目录。所以不能获取java文件的路径,只能把.java改为.class:
getResource("Demo.class")
输出:
技术图片









以上是关于java中类路径下的绝对路径(通用路径)的主要内容,如果未能解决你的问题,请参考以下文章

maven项目只能读到绝对路径下的文件,读不到相对路径下的文件

普通JAVA类 如何获取,WEB项目的根路径

java 怎样给相对路径下的pdf文件加水印

关于web工程中java类如何获取webapp路径下的文件

Vue2.x项目打包路径配置(相对路径)

java中如何判断web工程中图片的绝对路径是不是存在