【问题标题】:Files.createTempDirectory("") throws NullPointerExceptionFiles.createTempDirectory("") 抛出 NullPointerException
【发布时间】:2014-08-15 21:51:51
【问题描述】:

当我打电话给Files.createTempDirectory("") 时,我得到以下异常:

java.lang.NullPointerException
at sun.nio.fs.WindowsSecurityDescriptor.fromAttribute(WindowsSecurityDescriptor.java:353)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:220)
at java.nio.file.Files.newByteChannel(Files.java:315)
at java.nio.file.Files.createFile(Files.java:586)
at java.nio.file.TempFileHelper.create(TempFileHelper.java:138)
at java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:161)
at java.nio.file.Files.createTempFile(Files.java:803)

我没有发现任何FileAttributes 中使用Files.createTempDirectory("") 的例子。 我试过Files.createTempDirectory("", new FileAttribute<?>[] { });,但也没有用。

我在 Windows 7 系统上使用 32 位 JDK 7。 我不是机器上的本地管理员。

有人遇到过吗?

更新 1:

Files.createTempFile(this.tempDir.toPath(), "tmpFile", ""); 好像也有同样的问题。

作为一种解决方法,我已移至com.google.common.io.Files.createTempDir()

【问题讨论】:

  • 刚用JDK1.7.0_07试了一下,没问题。你用的是哪一个?
  • 我使用 1.7.0_11-b21。可能与我雇主的 Windows 7 环境有关。
  • 似乎仍在 Java 1.8/Windows 7 中发生。

标签: java windows nullpointerexception nio2 tempdir


【解决方案1】:

您是否尝试过使用Files.createTempDirectory(null) 而不是Files.createTempDirectory("")。在文档中,您可以读到可以将前缀作为空对象传递。

https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempDirectory-java.lang.String-java.nio.file.attribute.FileAttribute...-

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 2013-09-07
    • 2013-06-18
    • 2016-07-07
    • 2014-10-02
    • 2012-05-21
    • 2013-08-06
    • 2019-09-21
    • 2022-01-25
    相关资源
    最近更新 更多