当前位置: 首页 > 面试题库 >

Java File.setWritable()并在JDK 6u18之后停止正常工作

狄海
2023-03-14
问题内容

我们有一个带有特定模块的Java应用程序,该模块在执行临时功能之前检查临时目录是否可写。为了测试这一点,我们进行了一个JUnit测试,该测试创建一个新目录,使用Java
File类方法setWritable(false)使该目录“不可写”,然后将该目录传递给被测试的模块,并希望得到IllegalArgumentException回报。在JDK
6u18下,所有这些都运行了很长时间。

今天,我已将JDK版本更新为JDK
6u24(截至今天,它是Sun站点的最新版本)。新的JDK刚开始使该单元测试失败。我在团队中四处询问,发现其他人曾经尝试在其机器上运行JDK
6u23,并且在相同的JUnit测试中也遇到了相同的问题(并且仅在该测试中,其他一切都可以正常工作)。

setWritable() 在更新到较新的JDK之后,是否有人遇到过该方法的问题?任何想法如何解决这个问题?

在您问之前,我还尝试过使用该setReadonly()方法作为替代方法,但是得到的结果相同。


问题答案:

如果您使用的是Windows,则可能与以下错误有关:http
:
//bugs.sun.com/bugdatabase/view_bug.do?bug_id=6728842

显然,setWritable(false)从来没有真正在Windows上为目录工作过,因为readonly标志实际上没有使目录变为只读。



 类似资料:
  • 几个月前,我在Windows10上创建了具有平均堆栈的web应用程序。然后我Rest了一下,现在我正努力重新开始。 当时我使用gulp、browsersync、webpack和nodemon来自动重启服务器,我记得一切正常。但是当我一周前尝试此功能时,它只是回答**“bash:gulp:command not found” 我在全球和本地卸载并重新安装了其他两个包,但没有区别。我决定尝试制作一个全

  • 问题内容: 我正在尝试创建一个数据表,该数据表在忙时显示一个blockUI,并且我大多数时候都成功了。现在,当我单击两个commandButtons中的任何一个,通过单击标题对数据表进行排序,或在数据表中翻页时,它都会变灰并显示“正在加载…”。您可以在下面查看其代码。 问题是,在我使用了一个commandButtons(在受阻止的元素上运行ajax更新)之后,后续操作不会触发blockUI(直到刷

  • 问题内容: 我有一个包含三个部分的搜索页面。浏览主题组件列出了可供选择的主题。浏览文章组件基于主题ID列出所有文章,如果没有主题ID,则加载所有文章。home组件包含browsertopics和browserarticles组件,并根据所单击的主题更改其状态。 我需要的是,我希望BrowseTopics组件在父状态更改时停止重新呈现。我尝试使用shouldComponentUpdate()(返回f

  • 问题内容: 有时,当我调用Selenium FindElements(By)时,它将引发异常,并且驱动程序停止工作。参数“ BY”可能是问题所在:当我使用其他BY搜索相同的元素时,它起作用了。 我也可以看到,即使我的元素存在,或者之前曾调用过带有相同参数的相同方法,也不会阻止该方法引发异常。 我的方法是: 一个BY值的示例并非始终有效(即使它存在于页面中): 例外: WebDriverExcept

  • 由于依赖关系中的冲突,我想为io.netty添加阴影。着色后,本机ssl库(netty-tcnative-boringssl-static)的加载将停止工作。 主pom pubsub有以下3个依赖项:、和 错误 当尝试加载本机库时会出现问题。它给我的错误如下: 我已经查看了主POM生成的jar内部。并且没有与该名称匹配的本机库。这是在meta-inf/native目录中: 我做错了什么?我如何在不

  • 我在XAMPP中启动MYSQL时遇到了问题。Apache启动正常,但MYSQL不断报告意外关机。 我被引导删除,它在此之后工作,但它删除了我所有的数据库,并且MYSQL在我重新启动机器后再次停止工作。 [ERROR]INNODB:试图打开以前打开的表空间。以前的表空间MYSQL/INNODB_INDEX_STATS在FILEPATH:.\MYSQL\INNODB_INDEX_STATS.IBD中使