背景:
System.getProperty("user.dir")的作用是获取项目根目录, 今天遇到一个问题, 写单元测试和普通方法中使用System.getProperty("user.dir"), 获取的地址不一样. 导致一直找不到我想要的静态文件.
单元测试中使用System.getProperty("user.dir")获取到的路径是: F:/demo/helloword (期望中的)
普通方法中使用System.getProperty("user.dir")获取到的路径是: F:/demo/
开发环境: SpringCloud, 开发工具: IDEA
解决办法
经查阅资料, 大致得知. System.getProperty("user.dir") 是取的配置中的Working directory. 然后我就看了, 我Run/Debug Configuration的配置. 发现Debug环境和Run环境配置的不一样.
Debug Configuration的Working directory配置的是相对路径(期望中的)
Run Configuration的Working directory配置的是空的(不知道是不是默认为空),然后取到的地址就不是期望中的.
这下找到了问题所在, 解决办法就很简单, 把Run Configuration的Working directory也配置相对地址$MODULE_WORKING_DIR$即可.