Java setLastModified不在NFS共享上工作
我在一台Solaris服务器上安装了NFS共享。路径/appdata/anp从服务器A装载到服务器B。在共享下:Java setLastModified不在NFS共享上工作,java,nfs,solaris-10,nfsclient,Java,Nfs,Solaris 10,Nfsclient,我在一台Solaris服务器上安装了NFS共享。路径/appdata/anp从服务器A装载到服务器B。在共享下: /appdata/anp 我有一个名为 /appdata/anp/factory 在上面的目录中,我将包含需要导入/更新的数据的文件放在数据库中。在数据库中导入数据后,我根据导入数据的操作结果将文件移动到success/failure目录 /appdata/anp/factory/success /appdata/anp/factory/failure 我将文件移动到上述任一目录,并
/appdata/anp
我有一个名为
/appdata/anp/factory
在上面的目录中,我将包含需要导入/更新的数据的文件放在数据库中。在数据库中导入数据后,我根据导入数据的操作结果将文件移动到success/failure目录
/appdata/anp/factory/success
/appdata/anp/factory/failure
我将文件移动到上述任一目录,并使用以下命令将文件的上次修改时间更新为当前系统时间:
file.setLastModified
它返回一个布尔值。问题是,每当我执行此更新操作时,它都无法将该文件的时间戳更新为当前系统时间
有人知道其中的场景是什么吗
file.setLastModified
返回失败。我甚至检查了NFS权限,我觉得一切正常。是否知道setLastModified可能返回失败的情况
请帮帮我,这件事我真的很紧张!!:(我在Unix文件系统上遇到了类似的问题。在我的情况下,这是因为Unix正在截断上次修改的毫秒数,并将上次修改的毫秒数设置为: System.currentTimeMillis()-System.currentTimeMillis()%1000 它影响了一个测试用例,该测试用例正在操作一个文件,然后通过file.lastModified()检查更新。我只是在更新测试用例中的文件之前添加了Thread.sleep(1100),所有问题都得到了解决
希望这对下一个人有所帮助。对于所有来到本文并阅读本文的人来说,这个API似乎在某些平台和操作系统(在我的例子中是NFS挂载)上做得不好。最后,我使用了Unix“touch”通过从Java生成系统级线程来执行此命令!感谢您的分享!!我希望它能帮助其他面临类似问题的人使用此API