linux java user.dir_System.getProperty("user.dir")获取的到底是什么路径?

一直用System.getProperty("user.dir")来获取文件目录,我在执行单个方法调试和执行测试脚本的时候碰到一个问题,

我写了一个类ElementInitialize初始化数据模块,单个调试这个类的时候获取的目录为:D:\project\myTest,测试类RunCases调用ElementInitialize.getPageObjectManager()获取数据时,得到的目录是

D:\project\myTest\autoAppUI,autoAppUI是我项目模块的名字,两个路径的不一样导致我测试类执行的时候一直报空指针异常,为什么同一段代码(System.getProperty("user.dir")),两个地方执行获取到的路径会不一样呢?

我去看了2个类的Run Configuration配置,ElementInitialize配置的Working directory是D:\project\myTest,而测试类RunCases配置的Working directory是$MODULE_WORKING_DIR$,用的是一个相对的路径,包含了项目模块的名称。

我在调试ElementInitialize类的时候一直没问题,执行测试类RunCases的时候一直报空指针,为了解决这个问题,我把ElementInitialize的Working directory也配置$MODULE_WORKING_DIR$,修改了路径,两边都能执行了。

所以,System.getProperty("user.dir")这个句话的意思,我认为获取的是程序运行时的工作目录,不同类所属的目录不一样,所以需要设置一致。

除了修改一致的working directory,还可以优化代码,修改判断释放包含模块目录

56dc9953c620a63efac263246b01b400.png

8fa0dc2bd9876e4c16171e11ffb355ab.png

c56078171450e3e56e578e5301033ed6.png

7720d50b67e1a974a4ea57044f93c9dc.png


版权声明:本文为weixin_27251469原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。