java中的规范文件路径 - 优化问题?

bra*_*12s 8 java optimization

我的文件结构有一个指向目录/ home/me/myDir - >/some/other/dir的符号链接.此链接由另一个进程更新,并通知我的进程.收到通知后,我尝试获取新的规范路径:

public static String getPath()
{
   File file = new File("/home/me/myDir");
   if(file.exists())
   {
      try
      {
         String canonical = file.getCanonicalPath();
         return canonical;
      }
      catch ...
   }
Run Code Online (Sandbox Code Playgroud)

}

问题是链接改变后(我已经验证它发生了变化),调用上面的getPath()方法需要3-5次才能在返回上一个路径之前实际获取新路径.我唯一能想到的是java可能正在优化这个方法并返回旧路径.非常感谢任何想法或见解.

pru*_*nge 14

尝试禁用Java的规范化缓存.这可以通过设置系统属性来实现sun.io.useCanonCaches,并sun.io.useCanonPrefixCache为false.

默认情况下,规范文件名缓存30秒(在此处从源读取).