当java.io.File
不存在但文件实例上的调用getAbsoluteFile()
方法返回确实存在的文件时,是否有人遇到过这种情况。为什么会这样呢?
请注意
1.7.0_95-b00
-Duser.dir=/path/to/somewhere
启动tomcat实例答案 0 :(得分:2)
你可能不应该使用user.dir
。而是在启动Tomcat之前更改到该目录。
File.getAbsoluteFile()
假设user.dir
是您实际所在的目录,但您不是。
根据您的观察,我认为File.exists()
直接映射到操作系统级别的stat
。而File.getAbsoluteFile()
只是new File(System.getProperty("user.dir"), getPath())
。
假设user.dir
是操作系统的当前工作目录,这两个实现是正确和合理的。但在你的情况下,它们是不同的,这个(假定的)实现可以解释你正在经历的事情。