在maven项目中取classpath,获得的却是父项目的路径

我是用maven + spring boot构建的项目。
想获得项目的src/main/resources目录下的一个配置文件,结果却加载不到。
发现根本原因在于定位不到classpath。
比如下面这个代码:

        File file=new File("classpath:");
        System.out.println(file.getAbsolutePath());

获得的是父项目的绝对路径,这肯定不对。
换一种写法,引号里什么也不写:

        File file=new File("");
        System.out.println(file.getAbsolutePath());

也是一样的。
网上查了很久没查出来,查了半天才找到解决办法。
第一种办法:

        String classpath = Thread.currentThread().getContextClassLoader().getResource("").getPath();

第二种办法:

        String classpath = HelloWorld.class.getClassLoader().getResource("").getPath();

两种办法都能解决问题,只是路径的最前面多了一个斜杠,如果在windows系统下,在这样的路径后面拼接上配置文件的路径,有框架无法识别,可以用File类处理一下:

        File file = new File(classpath + "fastdfs-client.conf");
        System.out.println(file.getAbsolutePath());

此时最前面的斜杠就不见了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值