windows 文件加入绝对路径_Java 获取Resource目录下的文件解决办法

Java 获取Resource目录下的文件

2a0e890328987e6994ecea7272dc5253.png

有两种方式:

Java代码中的类,要获取Resource资源文件目录下文件

绝对路径寻址

7f0883cdf4f90b5cb0743a0b780410c0.png

注意这个 / 址的是根目录,用绝对路径,可能会出现的问题是,你的程序在windows上可以用,但是在linux不能用,原因在于,你这根目录在windows环境址你的src目录

放到linux环境,就可能执行你linux的根目录了,会导致 file not exist

针对上面的问题,可以考虑相对路径寻址:

例子:

765eae1e083fb48cecd790c7342af446.png

项目需要在 resource目录下面放一个hadoop 包, 这包远程提交到集群上运行,

上面就采用了相对路径

根据该路径,可以找到对应的hadoop.jar文件。

java中jar包内的类访问jar包内部的资源文件的路径问题

在本地项目中,若我们要访问项目中的资源文件,则一般使用相对路径或者用System.getProperities("user.dir")得到项目根目录,然后再访问资源文件,但是在将该工程和资源文件打包为jar包,运行该jar文件时,会显示找不到资源文件的错误。

在如下项目结构树中,项目根目录为nlpir,如果我们要在src下的某个package的某个java文件中访问blackWhite文件夹中的文件,则相对路径为"blackWhite/....."即可。但是在打包为jar包时,即使我们把blackWhite文件夹同样加入到打包的文件行列,在运行该jar包时,会出错:找不到blackWhite中某文件的路径。

f330410117cce36fd8d87922b5eab118.png

解决方法:使用Class.getResource或者是ClassLoader.getResourceAsStream()将文件内容放到InputStream中,具体使用如下:

8dacc3a6ef482290be10ec186e0f2c17.png

或者为:

1329bd15e40520ca19b79c398f8e5b1d.png

注意,使用class的getRescource时,要注意路径前要加"/",即根目录,此处的根目录是src

若像如下使用:

a615a2f15ef015f3163d81040edb24bc.png

则会出错如下:

dc55f9e7368170e3440770dd618ca725.png

使用ClassLoader时,如下:

c90255d9b32d932e1f22ad70af0bc161.png

在使用ClassLoader时,路径前面不能加"/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值