Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java文件不存在,但存在File.getAbsoluteFile()_Java_Java 7 - Fatal编程技术网

Java文件不存在,但存在File.getAbsoluteFile()

Java文件不存在,但存在File.getAbsoluteFile(),java,java-7,Java,Java 7,当java.io.File不存在,但文件实例上调用的getAbsoluteFile()方法返回确实存在的文件时,是否有人遇到过这种情况。为什么会这样 注 我使用的是Linux plus Oracle Java运行时,版本为1.7.0\u 95-b00 我传入了一个JVM选项-Duser.dir=/path/to/wherewhen 启动tomcat实例 您可能不应该乱搞user.dir。而是在启动Tomcat之前切换到该目录 File.getAbsoluteFile()假设user.dir是您

java.io.File
不存在,但文件实例上调用的
getAbsoluteFile()
方法返回确实存在的文件时,是否有人遇到过这种情况。为什么会这样

  • 我使用的是Linux plus Oracle Java运行时,版本为
    1.7.0\u 95-b00
  • 我传入了一个JVM选项
    -Duser.dir=/path/to/where
    when 启动tomcat实例

  • 您可能不应该乱搞
    user.dir
    。而是在启动Tomcat之前切换到该目录

    File.getAbsoluteFile()
    假设
    user.dir
    是您真正所在的目录,但您不是

    根据您的观察,我认为
    File.exists()
    直接映射到操作系统级别的
    stat
    。而
    File.getAbsoluteFile()
    只是
    新文件(System.getProperty(“user.dir”)、getPath())


    假设
    user.dir
    是操作系统的当前工作目录,这两种实现是正确和合理的。但是在您的情况下,它们是不同的,这个(假定的)实现可以解释您所经历的情况。

    这是否只在调试器中发生?如果您在
    try
    块中调用这些方法并打印结果会怎么样?它在程序和调试器监视中都会发生这是仅在tomcat中发生还是可以用一个简单的独立应用程序()复制相同的结果?目前我在tomcat进程中复制它。当我有时间的时候,我会用一个最小的例子来验证它。现在我必须赶上项目进度,这是否意味着
    java.io.File
    中的某些内部状态可能与
    System
    user.dir
    属性不同步?这很公平。File.exists最终依赖于公共本机int getBooleanAttributes0(文件f)的返回结果这是本机调用。