Classpath问题
java中的classpath路径问题
最近项目中有个调别的同事接口的地址频繁变更,就修改到配置文件中,方便部署以后修改.
config文件放在项目的resource文件夹下,resource文件夹下的文件在打包的时候会自动copy到项目的classPath目录下.
写完以后在在单元测试中测试:
1 |
|
提示找不到配置文件.
查了一下想起来,maven管理的项目,单元测试的时候文件也需要放到test文件夹下的resource里
于是把resource文件夹copy到了test下.
测试,还是提示找不到配置文件,不得其姐,于是google一下,看到了如下病理解释:
stackoverflow原问题地址
按照回答的阐述,getResourceAsStream(“config.xml”)会在文件所处包内查找配置文件,如果要找到classpath下的文件的话,应该加上”/“才能定位到classpath根目录,于是修改了一下单元测试方法,加上了”/“,
1 |
|
测试通过.
出于怀疑精神,决定去查一下是否真像回答中的一样没有”/“的时候会在包下找文件路径,于是把配置文件copy到了编译后的class所在包的文件夹下,并把”/“去掉:
运行测试
通过,歪果仁诚不欺我