【发布时间】:2011-07-15 04:59:40
【问题描述】:
我们有一个带有特定模块的 Java 应用程序,该模块在执行其功能之前检查临时目录是否“可写”。为了测试这一点,我们有一个 JUnit 测试,它创建一个新目录,使用 Java File 类方法 setWritable(false) 使目录“不可写”,然后将该目录传递给正在测试的模块并期望得到一个 @ 987654323@回来。这在 JDK 6u18 下已经运行了很长时间了。
今天我已将 JDK 版本更新为 JDK 6u24(截至今日,来自 Sun 站点的当前版本)。该单元测试刚开始使用新的 JDK 失败。我在我的团队中四处打听,发现其他人不久前曾尝试在他们的机器上运行 JDK 6u23,并且在相同的 JUnit 测试中遇到了同样的问题(并且仅在该测试中 - 其他一切正常)。
有没有其他人在更新到更新的 JDK 后遇到setWritable() 方法的问题?知道如何解决这个问题吗?
在你问之前,我也尝试过使用setReadonly() 方法作为替代方法,但我得到了相同的结果。
【问题讨论】:
-
是的!这是一个错误,而且变得更糟了!在 7.xxx 版本上,我尝试设置一个可写目录,我得到了成功的回复,但是……该文件夹是只读的。这在 Windows 7 和打开的 Suse 11.4 上都会发生。我还检查了这个错误已经超过 3 年了,而且没有人修复过。
标签: file permissions java readonly