【发布时间】: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